2015-05-19 53 views
0

我面临一个问题,我希望有人能帮助我。我有搜索引擎搜索对象。每个对象都有很多关键字,每个关键字都有自己的分数或权重。例如:为搜索引擎上的每个单词添加分数

  • 对象A中包含关键字:旅游(重量5.0),签证(重量4.0)。
  • 对象B包含关键字:澳大利亚(重量:7.0

当我用文字搜索:"travel to Australia"。结果将按关键字的重量排序。在这种情况下,结果是:

  • 对象B
  • 对象A

我要设计这样的数据库计划,但无法找到任何方式重订购。

Object_name |   Keyword 
ObjectA  | "Travel:5.0 Visa:4.0" 
ObjectB  |  "Australia:7.0" 

那么有没有一些搜索引擎(Elasticsearch,Solr ...),可以搜索关键字字段和关键字的重量?

+1

问题是:你如何计划索引/存储重量。你在哪里保留这个号码? –

+0

是的,例如:我使用文本挖掘来获取某个产品描述的关键字。有一些重要的关键字,我想标记他们改进搜索结果。我不能存储他们? –

+0

你想通过关键字,而不是按字段?像名字是字段和澳大利亚是关键字 – userMadhav

回答

0

我不认为你可以增加搜索条件的权重,但你可以提高某些查询的针对性。

在这种情况下,您可能必须为每个特定单词编写查询并相应地提高每个查询。这就是说,我并没有真正看到一个用例,其中一个特定的词比另一个更重,因为它应该是基于关键词的免费搜索。你可能更擅于在不同的领域中分割这些值,你可以使用不同的提高分数的查询来查询这些值。

0

你可以使用,作为一个奇特的解决方案,this token filter在哪里,你可以指定一个有效载荷。

之后,您可以retrieve that payload in scripts并将其用于评分。

除此之外,您可以通过各种方式在搜索时直接在您的查询中添加提升。

+0

非常感谢!我会专注你的想法。 –