我正面临一个问题,我希望有人可以帮助我。我有一个搜索对象的搜索引擎。每个对象都有许多关键字,每个关键字都有自己的分数或权重。例如:
当我使用文字搜索时:"travel to Australia"
。结果将按关键字的权重排序。在这种情况下,结果是:
我有计划设计这样的数据库,但无法找到按重量排序的任何方式。
Object_name | Keyword
ObjectA | "Travel:5.0 Visa:4.0"
ObjectB | "Australia:7.0"
那么是否有一些搜索引擎(Elasticsearch,Solr ...)可以搜索关键字字段并按关键字的重量排序?
答案 0 :(得分:0)
我认为你不能增加搜索条件的权重,但你可以提高某些查询的针对性。
在这种情况下,您可能必须为每个特定单词编写查询并相应地提升每个查询。话虽如此,我并没有真正看到一个特定单词比另一个单词更重要的用例,因为它应该是基于关键字的免费搜索。您可能最好在不同的字段中拆分这些值,您可以使用不同的提升分数查询来查询这些值。
答案 1 :(得分:0)
作为一种奇特的解决方案,this token filter可以使用每个单词来指定有效负载。
之后,您可以retrieve that payload in scripts并将其用于评分。
除此之外,您可以直接在查询中通过各种方式在搜索时添加提升。