Searchkick多模型搜索相关性问题

时间:2014-05-14 12:56:21

标签: ruby-on-rails ruby elasticsearch searchkick

我们一直在重建旧的“快速导航”/从Tire搜索到Searchkick的过程,因为标准分析器和标记器的结果似乎对我们的需求很好。但是,我们需要搜索多个模型,这会给我们带来一些问题。

该域名是虚拟主机。考虑表示包含Account的服务器的对象,包含数据库和应用程序。应用程序有许多域,而域又有SslCertificate。

这意味着当我们搜索“某事”时,如果我们有一个数据库“某事”,一个帐户“某事物”和一个域“something.com”,我们希望帐户在顶部,然后是数据库和域。问题在于,因为我们在不同的索引中搜索这些得分并不可靠。

所有型号的设置都使用number_of_shards 1。我认为问题源于这样一个事实:如果我理解正确,“独特性”会得到回报。也就是说,如果5000个对象中有1个数据库匹配,并且1个帐户匹配100个,则数据库匹配更独特,得分更高。

我们如何调整这个?据我了解,在某些模型中无法提高字段的分数。

1 个答案:

答案 0 :(得分:0)

您最好的选择是修改Searchkick生成的查询。 https://github.com/ankane/searchkick#advanced

如果您要从Tire迁移,请尝试使用相同的提升代码。

或者如果它没有削减它,请尝试以下方法之一: http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/query-dsl-function-score-query.html