他のすべては同じままですが、私のオブジェクトのいくつかは他のオブジェクトよりも価値があります.
米ドルの価格に応じて、インデックス時にオブジェクトをブーストすることは可能ですか?
または、値の数が限られている場合は、これが機能することを期待していました:
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 を使用している場合は、アノテーションを使用してフィールドにブースティングを直接追加できます。ブーストには、オブジェクト全体に適用される動的ブーストとフィールド レベル ブーストの 2 種類があります。おそらく動的ブーストが必要であり、次を使用して指定できます: @DynamicBoost(impl = VIPBoostStrategy.class)
http://docs.jboss.org/hibernate/search/3.2/reference/en-US/html/search-mapping.html#section-boost-annotationを参照してください。