2011-12-05 5 views
4

と矛盾している私は、このフィールドを食い止めていますSolrのスノーボールステマーはスペイン

<fieldtype name="textes" class="solr.TextField"> 
    <analyzer type="index"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords-es.txt" enablePositionIncrements="true"/> 
    <filter class="solr.SnowballPorterFilterFactory" language="Spanish" protected="protwords-es.txt"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/> 
    <filter class="solr.SnowballPorterFilterFactory" language="Spanish" protected="protwords-es.txt"/> 
    </analyzer> 
</fieldtype> 

検索クエリalquileres(賃料)の予想結果はalquiler(家賃)の試合になるだろう。私はSolrの管理サイトでの「場分析」を行って、そしてalquilerのインデックス値とalquileresのクエリ値をチェックする場合でも、次のようになります。

  • alquilerのインデックスを作成、それがalquilに茎ます。
  • alquileresを照会すると、alquilerになります。

したがって、複数形の単語(alquileres)を検索する単純なケースは、その特異形式(alquiler)と一致しません。

インデックスとクエリの両方を同じステム(alquilerまたはalquilのいずれか)に挿入しないでください。これはアルゴリズムの限界か、誤解/誤った構成ですか? http://wiki.apache.org/solr/Hunspell

答えて

1

スノーボール語幹は非常に限られている...あなたは(のhunspellステマー)辞書を使用することによって、より良い結果を取得したいですopenofficeからのhunspellを使用して、それは優秀な仕事をします。

私の例:

URL-Elastic/_analyze?analyzer=es_AR&text=alquileres 

とリターン:

{ 
    tokens: 
    [ 
    { 
     token: "alquiler", 
     start_offset: 0, 
     end_offset: 10, 
     type: "<ALPHANUM>", 
     position: 1 
    } 
    ] 

} 

リンク:https://www.openoffice.org/download/index.html

+0

はそれについて知らなかったし。私は間違いなくそれを見てみましょう。ありがとう! – Chewie

+1

私はHunspellを試みましたが、それは同じ機能不全に悩まされています。 'alquileres'は' alquiler'に、 'alquiler'は' alquil'に 'alquiler'が続きます。私の王国はまともなスペイン語のステマーのために! – Chewie

+0

'solr.SpanishLightStemFilterFactory'を試してみませんか? –

0

私のために正常に動作します。