0

其他一切都保持不变,我的一些物品比其他物品更有价值。

是否可以在索引时提升对象,比如说根据美元价格?

或者,如果您的值数量有限,我希望这会起作用:

f:aaa^4 f:bbb^3 f:ccc^2 animal:elephant

但我一定错过了什么。

4

2 回答 2

1

你所说的会奏效。但是,您可能希望将其重新格式化(boost query) +(original query)(f:a^4 f:b^3 b:c^2) +animal:elephant. 你现在拥有它的方式会发现只有拥有的东西f:aaa,不管animal:elephant

您可以查看 Lucene in Action 示例,了解如何编写自定义记分器,它允许您做一些更像是根据价格提升的事情。我不知道有什么方法可以在不编写代码的情况下做到这一点。

于 2010-11-09T22:27:13.323 回答
0

如果您使用的是 hibernate-search,则可以使用注释直接向字段添加提升。有两种类型的提升:适用于整个对象的动态提升,或场级提升。您可能想要动态提升,并且可以使用以下方式指定:@DynamicBoost(impl = VIPBoostStrategy.class)

请参阅http://docs.jboss.org/hibernate/search/3.2/reference/en-US/html/search-mapping.html#section-boost-annotation

于 2011-03-10T23:12:56.157 回答