elasticsearch 如何进行理解查询本质的搜索?

bqf10yzr  于 2023-05-06  发布在  ElasticSearch
关注(0)|答案(1)|浏览(166)

该网站有许多类别,如汽车,零部件,移动的和真实的地产。任务是创建一个能够理解查询并为该查询调整过滤器的搜索。这意味着搜索不应该在产品的标题和描述中寻找关键字,而应该调整过滤器以找到所需的产品。
以下是几个例子:

  • 巴黎的红色iPhone--系统应该明白,iPhone属于移动的类,制造商是苹果,颜色红色也应该选择在单独的滤镜中,而在巴黎,则应该与位置滤镜相关,因此我们选择的国家是法国--巴黎地区。
  • 宝马E39在日本-类别选择为汽车,制造商为宝马,型号为5系,生产年份为1996-2003,地点为日本国。

可以举出许多其他例子,但我认为任务是明确的。产品的所有特性都在数据库中。
目前,任务是创建搜索建议,即将搜索查询转换为几个搜索选项,用户将选择其中的一个。
但问题是如何在技术上实现这一点?Elasticsearch已经在项目中使用,所以我认为在其中创建一个索引是有意义的,其中存储了产品,地点和类别的所有特征,并添加了一些管理员将创建的自定义查询。
这种做法是否正确?如果任何人有任何想法或经验,在执行这样的任务,我会感谢任何有用的材料或建议!
更新:我还想补充一点,网站有很多语言,纠正搜索查询中的语法错误被认为是一项单独的任务。目前,我们只考虑如何将查询转换为过滤器设置。

apeeds0o

apeeds0o1#

你应该读一下facets。您可以在elastic-search和then extract the facets (filters) for that search-term中对术语进行全文搜索,以便根据返回的facets检查搜索值。
因此,当你搜索“巴黎的红色iPhone”时,你会得到一个值为“红色”的颜色面,你会检查这个过滤器。挑战在于,当你也获得了“红眼还原剂”的产品名称时,你不会知道这不是一个双重亮点。这就是NLP * 可以 * 帮助的地方,知道它是形容词还是名词......然而,这些短句和人们搜索的方式并不一定有利于准确的NLP。
就我个人而言,我会尝试蛮力的方式(匹配方面的搜索条件),看看它看起来如何,然后再尝试一些更微妙的东西。

相关问题