テキストベースのファイルセットのインデックス作成とクエリに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 のクエリで取得されているはずです。何が間違っているのかわかりません。