4

このスキームhttp://pastie.org/5114389を使用してapachesolrで検索しようとしていますが、「josé」と入力するとファイルが見つかりますが、「jose」と書くと結果が得られません。

Efetueiはインターネットで答えを探していて、クラスを使わなければなりませんでしたが、挿入しても違いはありません。

4

1 に答える 1

5

スキーマから、フィールドに割り当てられているfieldTypeでASCIIFoldingFilterFactoryすでに使用していることがわかります。ただし、これはそのフィールドのインデックス作成にのみ適用されます。クエリ用語がインデックス内のアイテムと一致するように折りたたまれていることを確認するために、フィールドのクエリにも適用することをお勧めします。通常、このような場合、インデックスファクトリにフィルタファクトリを追加すると、クエリ用語とインデックス用語がすべて適切に変換/比較されるようにクエリにも追加されます。textdefault

したがって、スキーマを次のように変更します。

<fieldType name="text" class="solr.TextField" omitNorms="false">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
    <filter class="solr.LowerCaseFilterFactory" />
    <filter class="solr.ASCIIFoldingFilterFactory" words="mapping-FoldToASCII.txt"/>
    <filter class="solr.RemoveDuplicatesTokenFilterFactory" />
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
    <filter class="solr.LowerCaseFilterFactory" />
    <filter class="solr.ASCIIFoldingFilterFactory" words="mapping-FoldToASCII.txt"/>
    <filter class="solr.RemoveDuplicatesTokenFilterFactory" />
  </analyzer>
</fieldType>
于 2012-10-25T13:46:01.590 に答える