图中描述了一条文档从索引到elasticsearch被搜索到的全过程,图中把坐标分成了4个象限,第一象限是用户,第二象限是原始文档,第三象限是elasticsearch,第四象限是搜索结果。
首先看索引过程。在第二象限中有一条原始的文档,该文档有title和content两个字段。当把这条文档写入elasticsearch之后,默认情况下elasticsearch中会保存两份内容,一份是该文档的原始内容,也就是_source中的文档内容,另一份是索引时通过分词、过滤等一系列过程生成的倒排索引文件,倒排索引中保存了词项和文档的对应关系。
再来看搜索过程。第一象限的用户对文档进行搜索,elasticsearch接收到查询关键词之后到倒排索引中进行查询,通过倒排索引中维护的倒排记录表找到关键词对应的文档集合,然后做评分、排序、高亮处理,最终返回搜索结果给用户。
搜索机制解决的是相关度的问题,当用户输入一个查询,elasticsearch通过排序模型计算文档和查询关键词之间的相关度,按照评分排序后返回最相关的文档给用户。另外,elasticsearch中还有一种过滤机制,过滤机制解决的是只根据条件对文档进行过滤,不计算评分。
标题:elasticsearch搜索机制(宏观)
作者:yazong
地址:https://blog.llyweb.com/articles/2019/08/14/1578150730085.html