关于Elasticsearch检索
通过kibana给elasticsearch保存数据时。ES默认分词器会对保存的每一个type的每一个field的值进行分词,
-----------------------------------------------------------------------------------------------------------------------------------------
如果是汉字,则就默认把汉字字符串按照每一个汉字进行分词,
如果是纯英文【如:dasdasdasdad dasdasd】则就按照空格进行分词,没有空格就不分词。
如果是英文+汉字:按照空格,汉字逐一分词,例如:wang luwa娃wa 娃娃w娃娃我a娃,
分词后结果是:词组1:wang,词组2:luwa,词组3:娃,词组4:wa,词组5:w,词组6:我,词组7:a
-----------------------------------------------------------------------------------------------------------------------------------------
常用检索方式:
term:精准查询,如果field的值是汉字,因为已经分词了,则用term检索就检索不到。
match_all:检索索引里的所有type。
match:如果检索的关键字是汉字字符串,通过分词器也会把检索字符串进行分词,再在指定的field里进行匹
配,field的值只要满足其中的一个分词即可。同理:英文是按照空格进行分析的。
match_phrase:是短语查询,可以检索满足当前短语的field对应的doc,不限制短语起始位置,只要匹配上即可。
match_phrase_prefix:支持短语前缀查询,使用场景:比如输入完一个短语:苹果 w,在输入完 “苹果” 时,检
索出与“苹果”相关的field对应的doc,再输入 “w” ,那么就会在检索出“苹果”对应field值中再检索下一个以w开头的
短语的field对应的type。
-----------------------------------------------------------------------------------------------------------------------------------------
查询某个索引下的某个type下的某一个doc的某一个field的分词情况语句是:
GET /index/type/id/_termvectors?fields=field

浙公网安备 33010602011771号