分析
分析是转化文本的过程,文本被转化为标记或术语,这些标记与术语会被添加进反转索引中,用于搜索。分析由内置的分析器或每个索引定制的分析器执行。
索引期间分析
创建索引(指定分析器)
PUT my_index
{
"mappings": {
"_doc": {
"properties": {
"title": {
"type": "text",
"analyzer": "standard"
}
}
}
}
}
note:title字段设置标准分析器。
ps:在索引期间,如果没有指定分析器,会从索引设置中查找名为default的分析器,如果也没有找到,默认采用标准分析器。
搜索期间分析
相同的分析过程在查询时应用于像匹配查询这样的全文本查询的查询字符串,此过程将查询字符串中的文本转化为它们存储在反转索引的格式。
即使查询字符串中使用的确切单词没有出现在原始文本中(因为文本与查询字符串都被分析器分析了),查询字符串的术语只要确切匹配来自反转索引中的术语,文档便会被成功匹配。
指定搜索时分析器
通常情况下,索引期间与搜索期间应该使用相同的分析器,像匹配查询这样的全文本查询将会使用映射来查找应用给每个字段的分析器。
用于搜索特定字段的分析器优先序列(从高到低):
- 查询自身指定的分析器
- search_analyzer映射参数
- analyzer映射参数
- 索引设置中名为default_search的分析器
- 索引设置中名为default的分析器
- 标准分析器