Elasticsearch 自定义过滤器示例
HTML strip Character Filter
删除HTML从文本元素,并替换HTML实体与他们的解码值(例如,更换&用&)。html_strip
使用的是Lucene的HTMLStripCharFilter。
GET /_analyze
{
"tokenizer": "keyword",
"char_filter": [
"html_strip"
],
"text": "<p>I'm so <b>happy</b>!</p>"
}
/*输出*/
{
"tokens" : [
{
"token" : """I'm so happy!""",
"start_offset" : 0,
"end_offset" : 32,
"type" : "word",
"position" : 0
}
]
}
添加分析器
这个API示例,是创建一个索引,使用html_strip配置一个自定义分析器
PUT /my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "keyword",
"char_filter": [
"html_strip"
]
}
}
}
}
}
参数
escaped_tags
,可选数组。不包含尖括号(< >
)的HTML标签数组。从文本中剥离HTML时,过滤器会跳过这些HTML元素。例如,值为[ "p" ]
跳过<p>
HTML标签。
请求示例
PUT my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "keyword",
"char_filter": [
"my_custom_html_strip_char_filter"
]
}
},
"char_filter": {
"my_custom_html_strip_char_filter": {
"type": "html_strip",
"escaped_tags": [
"b"
]
}
}
}
}
}
标准分词器
标准分词器,基于语法分词,(基于Unicode标准附件#29中指定的Unicode文本分段算法 ),并且适用于大多数语言。
POST _analyze
{
"tokenizer": "standard",
"text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}
/*输出*/