2016-03-22 4 views
-2

私はsonrを初めて使いました。私は条件付きのクエリを書く必要があります。私は、複数の条件でクエリを書くことができるかどうかを知りたかっただけです。Solrで条件付きクエリを書くには?

私は4列、クエリ条件は、以下のようなものである必要があり: -

列:名前、住所、市、州今

を誰かがキーワード「ルーマニア」で検索した場合、結果がどうあるべき -

  1. キーワードが名前列と一致する場合は名前列を検索し、それ以上の列は検索しないでください。
  2. 名前列にそのキーワードがない場合は、アドレス欄に移動し、最初の手順と同様に結果が見つかった場合はデータを返し、そうでない場合は次の列に移動します。

検索で使用する列の優先順位が事前定義されている優先順位検索です。もしsonrがそのような機能を提供していれば、私はファジーロジックを書く代わりにそれを使いたいと思っています。

おかげ

答えて

0

これは、あなたが話しているすべての列を検索することです。あなたは(edismaxのクエリタイプを使用している場合)照会するフィールドをSolrのを伝えるためにqfを使用します。

qf=name address city 

名欄のヒットはヒットよりも高く表示されるように、あなたはまた、重みを与えることができます今度は、市内の欄のヒットよりも高く表示されますアドレス欄、:

qf=name^20 address^10 city 

あなたが望む検索結果を取得するために重みを調整する必要があります。

0

あなたはこれらのようにそれを検索するFQを使用することができます。

fq=name:romania 

またはqで

+name:"romania" or +address:"romania" or +city:"romania" or +state:"romania" 
使用

OR最初のクエリが偽であれば、その後に移動することを計画中のようです次と次へ