Hibernate Search / Lucene中的文档提升

时间:2010-11-09 08:55:50

标签: hibernate lucene hibernate-search

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

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

或者如果你的数值有限,我希望这会有效:

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

但我必须遗漏一些东西。

2 个答案:

答案 0 :(得分:1)

你所说的会奏效。但是,您可能希望将其重新格式化为(boost query) +(original query),例如(f:a^4 f:b^3 b:c^2) +animal:elephant。现在,您可以找到只有f:aaa的内容,而不管animal:elephant

你可以看看Lucene in Action中的一个例子,说明如何编写一个自定义得分手,让你可以根据价格做更多的提升。如果不编写代码,我不知道你能做到这一点。

答案 1 :(得分: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