解析器的构成:
- 0个或者多个字符过滤器(character filters)
- 1个分词器(tokenizer)
- 0个或者多个词条过滤器(token filters)
设置实例:
PUT my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_custom_analyzer": {
"type": "custom",
"tokenizer": "standard",
"char_filter": [
"html_strip"
],
"filter": [
"lowercase",
"asciifolding"
]
}
}
}
}
}
POST my_index/_analyze
{
"analyzer": "my_custom_analyzer",
"text": "Is this <b>déjà vu</b>?"
}
字符过滤器(character filters)
字符过滤器用于在一个字符串被传递给分词器之前,对该字符串进行处理。
比如可以将“2018年”转换为“二零一八年”,es有一些内置的字符过滤器,可以用于构建
自定义解析器
分词器(tokenizer)
分词器的作用是接收一个字符串,将其打断成多个token。分词器可用于构建自定义
解析器。ik插件提供两种分词器,分别为ik_smart、ik_max_word。
词条过滤器(token filters)
词条过滤器用于接收分词器得到的词条,将这些词条进行一些处理,比如转换词条的大小写
删除词条,增加词条等等。es内置有一些词条过滤器,可用于构建自定义解析器