分析器
在索引和搜索操作期间,analyzer
映射参数用于定义应用于文本字段的文本分析过程。
analyzer
映射参数的主要功能包括:
-
分词: 分析器决定文本如何分解成可被索引和搜索的单个词元(单词、数字)。每个生成的词元不得超过 32,766 字节,以避免索引失败。
-
标准化: 分析器可以应用各种标准化技术,例如将文本转换为小写、删除停用词以及词干提取/词形还原。
-
一致性: 通过为索引和搜索操作定义相同的分析器,您可以确保文本分析过程的一致性,这有助于提高搜索结果的相关性。
-
自定义: OpenSearch 允许您通过指定要使用的分词器、字符过滤器和词元过滤器来定义自定义分析器。这使您可以对文本分析过程进行细粒度控制。
有关特定分析器参数(例如 analyzer
、search_analyzer
或 search_quote_analyzer
)的信息,请参阅搜索分析器。
示例
以下示例配置定义了一个名为 my_custom_analyzer
的自定义分析器
PUT my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_custom_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"my_stop_filter",
"my_stemmer"
]
}
},
"filter": {
"my_stop_filter": {
"type": "stop",
"stopwords": ["the", "a", "and", "or"]
},
"my_stemmer": {
"type": "stemmer",
"language": "english"
}
}
}
},
"mappings": {
"properties": {
"my_text_field": {
"type": "text",
"analyzer": "my_custom_analyzer",
"search_analyzer": "standard",
"search_quote_analyzer": "my_custom_analyzer"
}
}
}
}
在此示例中,my_custom_analyzer
使用标准分词器,将所有词元转换为小写,应用自定义停用词过滤器,并应用英语词干提取器。
然后,您可以映射一个文本字段,使其在索引和搜索操作中都使用此自定义分析器
"mappings": {
"properties": {
"my_text_field": {
"type": "text",
"analyzer": "my_custom_analyzer"
}
}
}