介绍
本篇文章为大家展示了elasticsearch中术语与匹配有什么不同,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强> elasticsearch中术语与匹配区别强>
- <李>
术语是精确查询
李> <李>匹配是模糊查询
李><强>词查询强>
术语是代表完全匹配,也就是精确查询,搜索前不会再对搜索词进行分词,所以我们的搜索词必须是文档分词集合中的一个,比如说我们要找标题为北京奥运的所有文档
curl 美元;-XGET http://localhost: 9200/索引/doc/_search ? pretty -d & # 39;{ ,“query": { “term"才能:{ ,,,“title":“北京奥运“; ,,} ,} }& # 39;
将会得到如下结果
{ “took"才能:,1, “timed_out"才能:,假的, “_shards"才能:,{ ,,,“total":, 5, ,,,“successful":, 5, ,,,“failed": 0 ,,}, “hits"才能:,{ “total"才能:,1, “max_score"才能:,0.92055845, “hits"才能:, ,,{ ,,,“_index":,“index" ,,,“_type":,“doc" ,,,“_id":,“3“, ,,,“_score":, 0.92055845, ,,,“_source":, { ,,,,,“content":,“同一个世界同一个梦想,, ,,,,,“title":,“北京奥运“, ,,,,,“tags":, ,,,,,,,,和平“; ,,,,,) ,,,} ,,} ,,) ,} }
<>强匹配类查询强>
匹配查询会先对搜索词进行分词,分词完毕后再逐个对分词结果进行匹配,因此相比于词的精确搜索,匹配是分词匹配搜索,匹配搜索还有两个相似功能的变种,一个是match_phrase,一个是multi_match,接下来详细介绍一下
<强>匹配强>
前面提到匹配搜索会先对搜索词进行分词,对于最基本的匹配搜索来说,只要搜索词的分词集合中的一个或多个存在于文档中即可,例如,当我们搜索中国杭州,搜索词会先分词为中国和杭州,只要文档中包含搜索和杭州任意一个词,都会被搜索到
curl 美元;-XGET http://localhost: 9200/索引/doc/_search ? pretty -d & # 39;{ “query"才能:,{ ,,,“match":, { ,,,,,“content":,“中国杭州“; ,,,} ,,} }& # 39;
文档3正文中有杭州,文档2中有中国,因此搜索结果有两个,文档3中杭州出现两次,所以排在前面,结果如下:
{ ,“took":, 1, ,“timed_out":,假的, ,“_shards":, { “才能total",:, 5, “才能successful",:, 5, ,,“failed": 0 }, ,“hits":, { ,才能“total",,, 2, ,才能“max_score",:, 0.99999994, ,才能“hits",:,“, { ,,,,,“_index",:,“index", ,,,,,“_type",:,“doc", ,,,,,“_id",:,“4“, ,,,,,“_score",:, 0.99999994, ,,,,,“_source",:, { ,,,,,,,,“content",:,“杭州是一个美丽的城市,欢迎来到杭州“, ,,,,,,,“title",:,“宣传“, ,,,,,,,“tags",:,“,“旅游“,,“城市“,) ,,,,,} ,,,},{ ,,,,,“_index",:,“index", ,,,,,“_type",:,“doc", ,,,,,“_id",:,“2”, ,,,,,“_score",:, 0.8838835, ,,,,,“_source",:, { ,,,,,,,,“content",:,“,中国是世界上人口最多的国家“, ,,,,,,,,“title",:,“,中国“, ,,,,,,,,“tags",:,“,“中国“,,“人口“,) ,,,,,} ,,,},) ,,} }
上述内容就是elasticsearch中术语与匹配有什么不同,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。