フィールド値がキャメルケースとハイフンの両方である特定のケースで失敗するsolr検索アプリケーションがあります。これらのケースは個別には正常に機能しますが、solr 内のフィールド分析ページが用語と一致しているにもかかわらず、一致するものはありません。
例えば:
フィールドmyFieldには値camelCase-hyphenが含まれています。camelcase-hyphenのクエリ値(これはキャメルケースではないことに注意してください) では、単語全体を連結する WordDelimiterFilterFactory 設定にもかかわらず一致がなく、LowerCaseFilterFactory が続きます。
分析ページには一致が表示されていますが、実際の検索を実行しても結果が得られません。下記参照。
私のフィールドタイプ分析は
<fieldtype name="textBlock" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1"
catenateWords="1" catenateNumbers="1" catenateAll="1" preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory"
protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1"
catenateWords="1" catenateNumbers="1" catenateAll="1" preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory"
protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldtype>
Solr 3.6.1 と edismax を使用しています。
どんな助けでも大歓迎です。
アップデート: