# IK分词器
# keyword不会被分词
# text类型的字段会被分词
# term、match、match_phrase、query_string的区别:
term查询keyword字段:
term不会分词。而keyword字段也不分词。需要完全匹配才可。term查询text字段
因为text字段会分词,而term不分词,所以term查询的条件必须是text字段分词后的某一个。match查询keyword字段
match会被分词,而keyword不会被分词,match的需要跟keyword的完全匹配可以。match查询text字段
match分词,text也分词,只要match的分词结果和text的分词结果有相同的就匹配。match_phrase匹配keyword字段
这个同上必须跟keywork一致才可以。match_phrase匹配text字段
match_phrase是分词的,text也是分词的。match_phrase的分词结果必须在text字段分词中都包含,而且顺序必须相同,而且必须都是连续的。query_string查询key类型的字段,无法查询
query_string查询text类型的字段
和match_phrase区别的是,不需要连续,顺序还可以调换。
# 一般模糊查找的时候,多用match,而精确查找时可以使用term。
# ES的相似度评分_score到底是怎么得出的?
ES的相似度算法为TF/IDF(检索词频率/反向文档频率)
字段长度准则:这个准则很简单,字段内容的长度越长,相关性越低。
检索词频率准则:检索关键字出现频率越高,相关性也越高。
反向Document频率准则:每个检索关键字在Index中出现的频率越高,相关性越低。
单个查询可以使用TF/IDF评分标准或其他方式。 如果多条查询子句被合并为一条复合查询语句,那么每个查询子句计算得出的评分会被合并到总的相关性评分中。