2017-02-02 11 views
0

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. 

だから、あなたはそれを削除でき、ueuに置き換えられません。

答えて

0

はい、GermanNormalizationFilterFactoryは、次の手順を実行しているため、ご使用の構成に応じて行動を期待されます。 (私は完全にあなたのユースケースを手に入れます)、助けることができる別の可能なアプローチは、を上に置きます。GermanNormalizationFilterFactory

関連する問題