Усиление документов в Hibernate Search / Lucene - PullRequest
0 голосов
/ 09 ноября 2010

Все остальное остается прежним, некоторые из моих объектов более ценны, чем другие.

Можно ли повысить объекты в индексное время, скажем, по цене в долларах США?

Илиесли у вас ограниченное количество значений, я надеялся, что это сработает:

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

, но я должен что-то упустить.

Ответы [ 2 ]

1 голос
/ 10 ноября 2010

То, что вы говорите, будет работать.Тем не менее, вы, вероятно, захотите переформатировать его как (boost query) +(original query), например (f:a^4 f:b^3 b:c^2) +animal:elephant.То, как у вас сейчас, найдут вещи, которые имеют f:aaa, независимо от animal:elephant.

Вы можете увидеть Lucene в действии для примера того, как написать собственный счетчик, который позволяет вам делать что-то еще, например, повышение в зависимости от цены.Я не знаю, как вы можете сделать это без написания кода.

0 голосов
/ 11 марта 2011

Если вы используете hibernate-поиск, вы можете добавить бустинг непосредственно в поля с помощью аннотации.Существует два типа усиления: динамическое усиление, которое применяется ко всему объекту, или усиление на уровне поля.Возможно, вы хотите динамическое повышение, и его можно указать с помощью: @DynamicBoost (impl = VIPBoostStrategy.class)

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

...