其他一切都保持不变,我的一些物品比其他物品更有价值。
是否可以在索引时提升对象,比如说根据美元价格?
或者,如果您的值数量有限,我希望这会起作用:
f:aaa^4 f:bbb^3 f:ccc^2 animal:elephant
但我一定错过了什么。
其他一切都保持不变,我的一些物品比其他物品更有价值。
是否可以在索引时提升对象,比如说根据美元价格?
或者,如果您的值数量有限,我希望这会起作用:
f:aaa^4 f:bbb^3 f:ccc^2 animal:elephant
但我一定错过了什么。
你所说的会奏效。但是,您可能希望将其重新格式化(boost query) +(original query)
为(f:a^4 f:b^3 b:c^2) +animal:elephant
. 你现在拥有它的方式会发现只有拥有的东西f:aaa
,不管animal:elephant
。
您可以查看 Lucene in Action 示例,了解如何编写自定义记分器,它允许您做一些更像是根据价格提升的事情。我不知道有什么方法可以在不编写代码的情况下做到这一点。
如果您使用的是 hibernate-search,则可以使用注释直接向字段添加提升。有两种类型的提升:适用于整个对象的动态提升,或场级提升。您可能想要动态提升,并且可以使用以下方式指定:@DynamicBoost(impl = VIPBoostStrategy.class)