一、 索引数据结构
搜索引擎使用倒排索引来组织数据,比如源文档
{"id":1,"title":"这是一张很贵的名画","tag":12345}
{"id":2,"title":"这是一幅相当贵的名画"...,"tag":54321}
title 可以分词为
"这/是/一张/很/贵/名画/画”
"这/是/一幅/相当/贵/名画/画"("的"字作为停止词没有进入到索引)
分词得到的每一个词元,比如"画",称作一个...term,那么倒排索引存储的数据将会变成:
titletagterm文档idterm文档id这1,2123451是1,2543212一张1
一幅2
很1
相当2
贵1,2
名画1,2
画1,2...二、搜索如何进行模糊匹配
搜索引擎使用倒排索引来进行模糊匹配,以上文为例,输入"很贵的画”搜索时:
首先输入词也进行分词"很/贵/画",然后用得到的term去和索引数据进行比对,得到:"很"->...{1},“贵”->{1,2},"画"->{1,2},然后"很"∩"贵"∩"画"={1},得到文档1为结果,模糊匹配在索引内部都是通过分词后的term精确匹配来计算的
2.1 关于匹配度
es的match