0

テキストベースのファイルセットのインデックス作成とクエリにsolrnetを使用しています。検索用語を二重引用符で囲み、検索用語がハイフンでつながれている場合の特定のケースについてサポートが必要です。StandardTokenizerFactory を使用しています。

スキーマ定義:

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

ケース 1:

  • SearchTerm: "S-ビデオ", quoted = true
  • Catalina Log: q=ContentSearch:(\"S-Video\")
  • 返された結果には、 とビデオのヒットが含まれています

ケース 2:

  • SearchTerm: "S - Video", quoted = true, ハイフンの周りにスペースを入れてください
  • Catalina Log: q=ContentSearch:("\"S+-+Video\"")
  • 返される結果には、S ビデオのヒットのみが含まれます (ハイフンの前後にスペースはありません)。

ケース 2 のレコードは望ましい結果ですが、ケース 1 のクエリで取得されているはずです。何が間違っているのかわかりません。

4

0 に答える 0