Elasticsearch的分词技术全面解析
Elasticsearch 的分词技术主要是通过内置的分词器实现的。Elasticsearch 支持多种分词器,如下:
- Standard Analyzer:默认分词器,按照单词进行分词,并且去除标点符号。
- Simple Analyzer:去除标点符号,按空格分词。
- Whitespace Analyzer:按空格分词,不去除标点符号。
- Stop Analyzer:比 Simple Analyzer 更强大,除了去除标点符号,还会去除常见的英文停用词。
- Keyword Analyzer:不分词,将整个输入作为一个单独的词汇。
- Pattern Analyzer:使用正则表达式来分词,正则表达式由用户自定义。
- Language Analyzers:针对特定语言的分词器,例如:English, Chinese, French 等。
以下是创建索引时指定分词器的示例代码:
PUT /my_index
{
"settings": {
"analysis": {
"char_filter": {
...
},
"tokenizer": {
...
},
"filter": {
...
},
"analyzer": {
"my_analyzer": {
"tokenizer": "my_tokenizer",
"filter": ["my_filter"]
}
}
}
},
"mappings": {
"properties": {
"my_field": {
"type": "text",
"analyzer": "my_analyzer"
}
}
}
}
在这个例子中,我们定义了一个名为 my_analyzer
的分词器,它使用了自定义的 tokenizer
和 filter
。在字段映射中,我们指定 my_field
字段使用 my_analyzer
分词器。
评论已关闭