タグ付けされたコンテンツのデータベースに対して実行する必要がある SOLR 検索には、かなり複雑な要件がいくつかあります。最初に、フィルター タグに一致する結果にデータベースをフィルター処理する必要があります。ホワイトリストのタグも含まれていない限り、ブラックリストのタグを持つこれらの結果はすべて削除する必要があります。
では、「森林」または「保全」のタグが付いたすべての文書を取得したいとします。しかし、「アフリカ」または「アジア」のタグが付いていない限り、「英国」または「ヨーロッパ」のタグが付けられたドキュメントを除外したいと考えています。SOLRクエリでこれを書き込もうとしました:
tag:((forest OR conservation) AND (africa OR asia OR !uk OR !europe))
ロジックは私には聞こえますが、クエリは機能しません。"forest" または "conservation" でタグ付けされた 46 のドキュメントがあります。そのうちの 1 つは "asia" でタグ付けされており、"uk" または "europe" でタグ付けされているドキュメントはありませんが、クエリは結果を返しません。
また、SOLR への fq (フィルター処理されたクエリ) パラメーターに関する情報も見ました。しかし、これも役に立たなかったようです。SOLRが壊れる原因はNOTとORの組み合わせのようです。
私がやろうとしていることは可能ですか?私の論理はどこかに欠陥がありますか?これはSOLR 1.4 btwにあります-これはどこかで解決された問題です....
アドバイスをありがとう!