inStock:trueで高価格のドキュメントを、次のようにブーストしたいと思います。
- inStock:trueは1です
- inStock:falseは2です
価格の生成と在庫の数値表現をブースト関数として使用できるようにするには、次のようにします。
document boost = (inStock == true ? 2 : 1) * price
これは可能ですか?ブールフィールドブーストについてはすでに質問がありますが、それは私の要件を満たしていません。
UPDATE1:
Solr 4に実装されているSOLR-2136は、条件付き関数(if)用であり、私の場合は簡単です。Solr 4はまだリリースされていないので、回避策はありますか?
UPDATE2:Solrでブールフィールド型を使用しないようにしてください。これは、trueの場合は「T」、falseの場合は「F」を格納します。trueを1に、falseを0にマップするには、map()とord()を使用する必要があります。ブール値にはintを使用し、そうでない場合は「 tブールフィールドでnullを許可し、フィールドのfalse値にインデックスを付けないでください。