2016-12-15 3 views
0

titleという名前の列があります。この列を検索したい。 title:'sport'またはtitle:"sport"のように1つの単語を使用しても問題ありません。どちらも同じ数のレコードを提供します。二重引用符で囲まれていない2つ以上の単語の検索クエリを選択

私の問題は、二重引用符を使用しない2つ以上の単語で検索するときです(正確な結果を与える二重引用符は例:title:"sport education")。

title:'sport education' - title:'sport'/title:"sport"の検索のレコードの同じ数を返します - 無関係なレコードを返す

+title:'sport education'は(より多くのタイトルのがスポーツや教育の単語を持っていません)。

少なくとも1つの検索語を取得するには、列内で一致する必要がありますか?

注:のSolrバージョン6.3.0

事前にありがとうございます!

答えて

1

は、私が何を探していることは以下のパラメータの鎖で賭ける:

http://$solr_host:8983/solr/magazines/select&q=sport+education&df=title&q.op=OR 

私はあなたのためにそれを解読してみましょう:

  • Q =スポーツ+教育。このような自由形式で自由にクエリを使用することができます。
  • df = title。ここでは、検索のデフォルトフィールドを指定しています。
  • q.op = OR(デフォルトでは省略して構いません)。 $q$df FIELDTYPEに応じてトークン化され、句は介して、または、このように結合されます:あなたはCommon Query ParametersLocal Parameters in Queriesに従うことができます詳細については

title:sport OR title:education 。クエリtitle:'sport education'を解析した後

+0

完璧に見える...大変感謝しています!しかし、これは1つの列で機能しています。 2列または3列にどのように実装できますか? – Naga

1

は、単一引用符、二重引用符として動作しません。この

title:sporttext:educationようになります。

そう用語educationがスキーマファイルでデフォルトのフィールドdf(テキスト、Solrの-configファイルでそれを確認してください)

に検索されますがcopyfieldを使用してテキストに他の多くのフィールドをコピーしている場合がありますので、あなたは、他の文書(フィールドを取得

title:sport name:sachinのように、異なるフィールドで異なる用語を検索するには、フィールド名を指定する必要があります。

二重引用符を使用したフレーズクエリtitle:"sport education"には、タイトルフィールドがsport educationのすべてのドキュメントがあります。

+0

あなたの時間を感謝し、私の問題については答えを書いてください。 – Naga

関連する問題