ElasticSearch多字段特性&自定义Analyzer
目录
多字段特性
以不同的特性索引字段来实现不同的需求,即多字段的特性。
|
|
ExactValues&FullText
- Exact Value:包括数字/日期/具体一个字符串
keyword
- Full text:全文本,非结构化的文本数据
text
其中 Exact Value 不需要被分词,会为每一个字段创建一个倒排索引。
自定义分词
可以通过不同的组合实现自定义的分词器:
- Character Filter
在 Tokenizer 之前对文本进行处理,可配置多个,且会影响 Tokenizer 的 position 和 offset 信息。
自带的 Character Filter:HTML strip(去除 html 标签)、Mapping(字符串替换)、Pattern replace(正则替换)。
|
|
- Tokenizer
将原始的文本按照一定的规则,切分为词(term or token)。
- Elasticsearch 内置的 Tokenizer
whitespace
/standard
/uax_url email
/pattern
/keyword
/path hierarchy
可以用官方提供的库自己开发。
|
|
- TokenFilter
将 Tokenizer 输出的单词(term),进行增加、修改、删除。
- Elasticsearch 内置的:
Lowercase
/stop
/synonym
(添加近义词)
|
|
参考
https://time.geekbang.org/course/intro/100030501?tab=catalog