在elasticsearch中搜索“phone”时,如何区分“phone”和“phone cover”?

ktecyv1j  于 2023-03-17  发布在  ElasticSearch
关注(0)|答案(1)|浏览(137)

我试图创建一个电子商务应用程序的搜索功能,我有不同类别的产品,包括手机和手机盖。当我搜索“手机”,我想看到的产品,有一个类别的手机,而不是手机盖。但由于某种原因,产品与手机盖类别将获得更高的分数。

hpcdzsge

hpcdzsge1#

这是因为你搜索的领域和你提高分数的策略。
首先,让我们了解一下Elasticsearch评分。

Elasticsearch's _score是一种用于确定搜索结果相关性的排名算法。分数是基于因素组合计算的,包括term frequencyinverse document frequencyfield length normalization

假设您有一个Elasticsearch图书索引,其中包含“title”和“description”字段,您希望搜索与查询“scifficnovel”匹配的图书。
Elasticsearch将搜索索引中每本书的“标题”和“描述”字段,并计算每本书与查询匹配程度的分数。在标题和描述中出现更频繁的单词“科学”、“虚构”和“小说”的书籍的_分数会更高。

例如,假设索引中有两本书:

第1册:标题:“银河系搭车客指南”。描述:“一部喜剧科幻小说,讲述了一个不知情的人类和他的外星朋友的冒险经历.”
第2卷:标题:《了不起的盖茨比》。描述:“一部描写20世纪20年代放纵和堕落的经典美国小说.”
当您搜索“science fiction novel”时,Elasticsearch将返回两本书,但Book 1的排名更高,因为它在标题和描述中包含了查询的所有三个词。Book 1的_score将高于Book 2的_score,这表明它是查询的更好匹配。
这是一篇关于电子商务搜索相关性的好文章:https://medium.com/quantyca/reviving-an-e-commerce-search-engine-using-elasticsearch-e540751c6d99

相关问题