栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Elasticsearch项目实战整理之搜索篇

Elasticsearch项目实战整理之搜索篇

在讲文本搜索之前,我们需要先知道文本的倒排索引是如何构建的。我们都知道es文本常用的两种数据类型keyword, text,这两种文本类型唯一区别就是在索引文档时,keyword类型文本不会进行分词,而是直接将字段内容作为一个关键词,构造倒排索引。而text字段会对对应文本进行分词,分词之后变成一个或多个关键词,构造倒排索引。

搜索之term

term搜索是一种等值比较的搜索,es会将term中全部文本作为一个关键词在倒排索引中匹配查询,如有匹配则返回结果。term查询场景适用于查询如 性别,类型等需要进行全部值匹配的查询场景,查询结果不会计算分数,速度相对较快。

搜索之match

match搜索是一种模糊搜索,适用于查询某个文本是否包含某些关键词,文本与搜索关键词的相似度的查询,在实际应用中如百度搜索,淘宝中根据一定词语对商品的搜索都是使用match搜索。match搜索会计算目标文档中相应字段文本与查询语句的相似度,根据相似情况进行打分。

match搜索实现原理是将查询语句通过分词器进行分词,变为多个查询关键词,然后将这些关键词在倒排索引中匹配查询,获得结果。

综上所述,term与match之间的区别:term不会对查询语句进行分词,也不会对查询结果打分,是一种全量文本的等值匹配。 match会进行分词,会进行打分,是一种相似度查询。

搜索之搜索过程

以上图三个节点为例,三个节点组成一个es集群,一个索引,3主3从。

  1. 当查询从客户端发送到节点3时,此客户端发送的请求被节点3接受并处理,此时我们称节点3为此次请求的协调节点,节点3会将查询发送到索引对应的三个分片,三个分片可能是主可能是从,es会根据负载均衡算法来决定查询请求发送到哪个分片。
  2. 各个分片会将查询结果的docid和排序字段返回给协调节点,注此时并不返回文档的全部数据。
  3. 协调节点根据各个分片返回的docid和排序字段进行排序,筛选出需要返回给客户端的文档docid
  4. 使用docid去对应分片上拉取文档真实数据,返回给客户端
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422846.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号