2017-01-14 6 views
0

データベースに約200のエントリで実行されているSolrインスタンスがあります。 ORを使って文字列を検索したいが、動作するクエリを取得できない。結果の数がブール値ではないSolrクエリー

q=fieldname:"string"のような単純なクエリを実行すると、13の結果が得られます。次のような別のクエリを実行すると、q=fieldname:"otherstring"、i gt 18という結果になります。最終的には、一緒に31の結果があり、それらのうち4つが両方の文字列を含むのと同じものなので、それは27の結果であると予想します。

    問題は今、私は期待27.それは結果のすべての種類を返します。一度ではなく、これらの文字列の両方を検索したい場合は、私はthis siteは、それがどのように動作するかを記述した、さまざまな物事のカップルを試しています

  • q=fieldname:"string otherstring"私に10
  • q=fieldname:"otherstring string"を与えてくれ0
  • q=fieldname:"string otherstring"~1を与えてくれ10
  • q=fieldname:"otherstring string"~1を与えてくれ1
  • を与えます
  • q=fieldname:"(string otherstring)"私に37を与えるが、いくつかは、これらの組み合わせであれば、私はより多くのを試してみましたように私はこれで行くことができ

、上記と同様、すべての

  • q=(+fieldname:"string" +fieldname:"otherstring")"に関連していません。誰も私が結果の正しい数でクエリを取得するのを手伝ったり、誰かが私が間違っていることを説明することができますか?あなたはORクエリを実行する場合

  • 答えて

    0

    、明示的に使用OR:

    q=fieldname:"string" OR fieldname:"otherstring" 
    

    他のバージョンは、値q.opと、使用中のクエリパーサによって異なる結果が得られます。

    q=fieldname:("string" OR "otherstring") 
    

    は、意味的に同一である必要があります。

    +0

    私のSolrの設定に何か問題があるようです。私はあなたのexampesを実行して116の結果を取得します。両方とも。 – rugar

    +0

    それは、フィールドタイプが何であるか、そしてマッチを作り出すものによって異なります。 debugQueryからの出力を見て、返されたドキュメントが返されている理由をチェックしましたか? – MatsLindh

    +0

    EdgeNGramFilterFactoryと他のいくつかのフィルタを持つカスタムフィールドタイプです。多分それが問題です。私は理解していない出力の割り当てを生成するので、私はデバッグを試みていません。私はちょうどそれを試したときにそれは割り当てを言うが、私はそれを感知することはできません。チェックすることは何が重要でしょうか? – rugar

    関連する問題