一、搜索方法对比
首先存入一条数据count=" i like eating and kuing" 默认分词器应该将内容分为 “i” “like” “eating” “and” “kuing”
1.QueryBuilders.matchQuery("count",count);
会将搜索词分词,再与目标查询字段进行匹配,若分词中的任意一个词与目标字段匹配上,则可查询到。
count= "i" 可查出 count= "i li" 可查出 count= "i like" 可查出 count= "i like eat" 可查出 count= "and" 可查出 count= "kuing" 可查出
count= "ku" 查不出 count= "li" 查不出 count= "eat" 查不出
2.QueryBuilders.matchPhraseQuery("count",count)
默认使用 match_phrase 时会精确匹配查询的短语,需要全部单词和顺序要完全一样,标点符号除外。(一般用于内容模糊查询)
count= "i" 可查出 count= "i li" 查不出 count= "i like" 可查出 count= "i like eat" 查不出 count= "and" 可查出 count= "kuing" 可查出
count= "ku" 查不出 count= "li" 查不出 count= "eat" 查不出<

本文介绍了JAVA中对ElasticSearch的搜索方法,包括matchQuery、matchPhraseQuery、matchPhrasePrefixQuery和termQuery的对比,重点阐述了多字段搜索的BoolQueryBuilder应用,以及如何实现搜索结果的高亮展示。
最低0.47元/天 解锁文章
666

被折叠的 条评论
为什么被折叠?



