0

フィールド値がキャメルケースとハイフンの両方である特定のケースで失敗する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 を使用しています。

どんな助けでも大歓迎です。

アップデート:

詳細なフィールド分析出力

デバッグ応答

4

1 に答える 1

0

ここDebug Responseに投稿されたデバッグ応答を見ると、検索が少なくとも 1 つのドキュメントと一致していることがわかります。したがって、期待どおりに機能しています。

    <result name="response" numFound="1" start="0">
      <doc>
        <str name="a_searchable_name_t">camelcase-hyphen</str>
      </doc>
    </result>

一致していることを確認してくださいnumFound=1。しかし、まだ結果が得られていないと考えていると思います。申し訳ありませんが、これをフォローアップのコメントとして投稿したかったのですが、フォーマットと文字の制限により詳しく説明できません。

于 2012-08-16T15:49:44.673 に答える