は、我々は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を再コンパイルする必要なし)
SnowballPorterFilterFactoryでGerman2を試すことができますか? –
ここで読むことができるようにhttps://lucene.apache.org/core/5_4_0/analyzers-common/index.html?org/apache/lucene/analysis/de/GermanNormalizationFilter.html Solrは既にGerman2を使用していませんか? – rabudde