0

誰かが私に違いを教えてもらえますか:

q=word1 word2

q="word1 word2"

分析対象のキーワード「word1word2」(はい、キーワードに空白を含めることができます)を一致させようとしてKeywordTokenizerFactoryいますが、クエリに引用符を追加した場合にのみ機能するようです。

ちなみに、私はSolr拡張Dismaxを使用していますが、これが重要かどうかはわかりません。構文は次のとおりです。

q="some text"&qf=KeywordField&qf=FrenchtextField

編集:

引用符で私が抱えている問題は、フルテキストを含む別のフィールドがあることです(分析は基本的で、小文字のフィルターを含め、FrenchAnalyzerに近いです)

'HelloWorld'テキストのインデックスを作成しましたが、q = helloWoRLDで見つけることができますが、q = "helloWoRLD"では見つかりません。すべてのクエリに引用符を追加したため、この単体テストは失敗します。q=helloWoRLDとq="helloWoRLD"の違いは、まだ1語の検索であるため、わかりません。

4

1 に答える 1

1

Lucene クエリ構文ではスペースを使用して用語を区切るため、フィールド "q" と "word2" で "word1" を検索しますが、フィールドが指定されていません (フィールドが指定されていない場合の lucene の動作はわかりません)。

  • フィールド q で文字列 "word1 word2" (連続する単語) を検索する場合は、引用符を使用する必要があります。つまり、q="word1 word2" です。
  • これらの単語の両方を含む (連続していない) レコードを検索する場合は、「q=word1 AND q=word2」を検索できます。

私はあなたのハローワールドの問題をよく理解していないので、それについてコメントすることはできません. お役に立てれば

于 2013-02-14T09:59:19.770 に答える