2016-04-06 15 views
0

は、我々はSolrの5.4を使用し、デフォルトの設定であるschema.xmlをSolrのGermanNormalizationFilterと特殊文字

<fieldType name="text_de" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <filter class="solr.StopFilterFactory" words="lang/stopwords_de.txt" format="snowball" ignoreCase="true"/> 
     <filter class="solr.GermanNormalizationFilterFactory"/> 
     <filter class="solr.GermanLightStemFilterFactory"/> 
    </analyzer> 
</fieldType> 

以下でtext_deとして定義され、いくつかのテキストフィールドを持っています。私はなぜname:Roseweinの検索結果がないのだろうが、name:Roséweinは関連するエントリを返します。 だから私はいくつかの特別な文字と、その結果enabledオプションdebugQueryでフィールドnameを照会しようとした:

{ 
    "responseHeader": { 
    "status": 0, 
    "QTime": 0, 
    "params": { 
     "debugQuery": "true", 
     "indent": "true", 
     "q": "name:ÁÀÂÄÃåĀĂÆæöüßéèêíóú", 
     "_": "1459935371889", 
     "wt": "json" 
    } 
    }, 
    "response": { 
    "numFound": 0, 
    "start": 0, 
    "docs": [] 
    }, 
    "debug": { 
    "rawquerystring": "name:ÁÀÂÄÃåĀĂÆæöüßéèêíóú", 
    "querystring": "name:ÁÀÂÄÃåĀĂÆæöüßéèêíóú", 
    "parsedquery": "name:aaaaãåāăææousséèêiou", 
    "parsedquery_toString": "name:aaaaãåāăææousséèêiou", 
    "explain": {}, 
    "QParser": "LuceneQParser", 
... 

はない、すべての変異体はASCII表現に置き換えられていることを、示しフィールドparsedqueryを見てみましょう。フィルターとしてASCIIFoldingFilterFactoryを使用することはできません。ドイツ語のウムラウトは、üからueなどに変換されることがあります。

しかし、私は理解することはできません。なぜíóúáéとして飼われiouaなくéに変換されますか?

そして、これらすべての特殊なボーカルをASCII表現に変換する方法はありますが、ウムラウトをae Ae ue Ueに変換するなどできますか? (Solrを再コンパイルする必要なし)

+0

SnowballPorterFilterFactoryでGerman2を試すことができますか? –

+0

ここで読むことができるようにhttps://lucene.apache.org/core/5_4_0/analyzers-common/index.html?org/apache/lucene/analysis/de/GermanNormalizationFilter.html Solrは既にGerman2を使用していませんか? – rabudde

答えて

1

カスタム文字マッピングルールを検索する場合は、MappingCharFilterFactoryを使用できます。これは、ルールを含む設定ファイルを使用します。 Techproducts example schemaはそれを紹介しています(コメントアウトされていますので、最初の変更後に削除されます)。 mapping-FoldToASCII.txtmapping-ISOLatin1Accent.txt

+0

音が良い、テストのために私にいくつかの日を与える – rabudde