Solr検索で次のような問題があります。検索語が大文字である場合にのみ検索結果が得られます
"oe", "ae" or "ue" (Which is in German the same like ö, ä and ü) and the search term is not capitalized
で始まる単語を検索すると、Solrは0の結果を返します。
しかし、私は同じ単語を検索するときにwith capitalized first char of the word, I get results
からSolr。
私はインデックス、次のフィルタが使用されていますが、私はthe non-capitalized search term is always converted from eg. "ue" -> "u"
"response": {
"numFound": 0,
"start": 0,
"docs": []
},
"debug": {
"rawquerystring": "uetze",
"querystring": "uetze",
"parsedquery": "(+DisjunctionMaxQuery((content:utze | title:utze | keywords:utze | description:utze^2.0 | browserTitle:utze^3.0)))/no_coord",
"parsedquery_toString": "+(content:utze | title:utze | keywords:utze | description:utze^2.0 | browserTitle:utze^3.0),
"explain": {},
"QParser": "ExtendedDismaxQParser",
"altquerystring": null,
ことがわかり、デバッグモードで検索を実行します。
<fieldType name="text" class="solr.TextField" sortMissingLast="true" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords-de.txt" /> <!-- DE -->
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" splitOnCaseChange="0" splitOnNumerics="0" catenateWords="1" catenateNumbers="0" catenateAll="1" stemEnglishPossessive="1" preserveOriginal="1" />
<filter class="solr.GermanNormalizationFilterFactory" /> <!-- DE -->
<filter class="solr.ASCIIFoldingFilterFactory" /> <!-- DE -->
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.WordDelimiterFilterFactory" catenateAll="1" preserveOriginal="1" />
</analyzer>
</fieldType>
誰もがこのconvertionを回避する方法を知っていますか? ご協力いただければ幸いです!
'ß' is replaced by 'ss'
'ä', 'ö', 'ü' are replaced by 'a', 'o', 'u', respectively.
'ae' and 'oe' are replaced by 'a', and 'o', respectively.
'ue' is replaced by 'u', when not following a vowel or q.
だから、あなたはそれを削除でき、ue
はu
に置き換えられません。