欢迎访问天津SEO推广公司服务中心,网站关键词快速推广方案一对一指导

天津SEO推广公司

关键词快速推广方案及SEO建站推广培训服务

【搜索优化】利用rescoring机制优化近似匹配搜索的性能

作者:佚名      发布时间:2021-04-30      浏览量:45

match与phrasech(proximitymatch)的区别。

match->只要简单地匹配term,就可以立即将term对应的doc作为结果返回,扫描后排索引,扫描后ok。

首先扫描所有term的doclist,找到包括所有term在内的doclist的doclist,然后每个doc计算每个term的position,是否符合指定范围

matchquery的性能远高于phrase。因为后两者都要计算position的距离。match比phrasech高10倍,比proximitymatch高20倍。

但不要太担心。es的性能一般是毫秒级别,match和query一般是几毫秒或几十毫秒,phrasematch和proximitymatch的性能在几十毫秒到几百毫秒之间,也可以接受。

优化proximitymatch的性能,一般减少proximitymatch检索的document数量。主要想法是通过matchquery过滤所需的数据,然后通过proximity将match转移到term距离来提高doc的分数,同时proximitymatch只对每个shard的分数排个doc发挥作用,重新调整分数一般用户会进行分页查询,只会看到前几页的数据,所以不需要对所有结果进行proximitymatch操作。

用我们刚才的说法,match,match同时实现召回率和准确性。

默认情况下,match可能与1000个doc匹配,proximitymatch都需要对每个doc进行一次运算,判断是否可以进行slop移动匹配,然后对自己的分数进行贡献,但是在很多情况下,match可能会出现1000个doc,实际上用户大部分都是页面查询,因此最多只看前几页,例如页面是10页,最多看5页,也许是50页,也就是50页

1、rescore:再评分

match:1000个doc,实际上每个doc都有分数的proximitymatch,前50个doc,rescore,再评分就可以了

GET获得冠军/forticlech_search{fearch{varkettlege:tolloglet{fortion{fortion:tollet{fort:tolloglet:tologleavsparktollet}、tolescolescollescollescollet{vescolescolescolet{vescolescolescolet}、tlescolescolesclolololest{flescolest{vest{vescolesescolest{vescolest{vesescolesescolestllestlest{vest{vest}、tlesescolestllesclestlestlestlestllllest{vestrest{vesest{velelestlllllelestlllllesestlest{velestlllest:¤:¤:tlescolestlestlestlescolestlesest{vesesesst{vest{vest{vest{velestlestlelest:t{vest{velest{vest{velestlelest{velestlesesestlestlestrstrsestrestlestrstrst:t{vest{velestlestlestlesestlesestlestlest: