0

ドキュメント内の全文検索にsolr1.4とsolr4を使用しています。現時点では、テキストブロックの「犬が走っている」などのフレーズ全体を検索できません。「犬は家の中を走っています。」このテストケースでは、単純なsolr URLを使用します:http:// plocalhost:8088 / solr / select /?start = 0&q= "犬が走る"

次のオプションを使用して、トークン化され、ステム化されたテキストファイルを使用しています。

<fieldType name="text_de" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords-de.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
    <filter class="solr.SnowballPorterFilterFactory" language="German" />
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms-de.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
    <filter class="solr.SnowballPorterFilterFactory" language="German" />
  </analyzer>
</fieldType>

なぜそれが機能しないのか、私にはわかりません。:-(...ヒントをありがとう。

4

1 に答える 1

2

私自身の質問に答えるには:

インデックス時のアナライザーはストップワードリストを使用していますが、クエリ時のアナライザーはストップワードリストを使用していません。したがって、インデックス内のフレーズは、クエリ時のフレーズと同じではありませんでした。

「query」アナライザーにStopFilterFactoryを追加するだけで済みました。

于 2011-07-08T12:15:42.730 に答える