Я переключил поисковик с lucene на solr в моем приложении sitecore.Есть несколько дополнений от sitecore к schema.xml от solr.Я использую Solr 6.6.3.Изменение было успешным, но некоторые результаты поиска не такие, как прежде.
Пример: поиск по немецкому слову "Trommelfilter" не вернет никаких результатов.Поиск по немецкому слову "Trommelfilt" возвращает ожидаемый результат.
Кажется, что "er" может быть удалено изнутри.Может быть, какая-то конкретная проблема культуры?
Я снова запускаю поиск solr, но проблема все еще существует.
Solr Query 1: searchcontent_t_de:(*Trommelfilt*)
Результат:
{
"responseHeader":{
"status":0,
"QTime":4,
"params":{
"q":"searchcontent_t_de:(*trommelfilt*)",
"indent":"on",
"wt":"json",
"_":"1554983614349"}},
"response":{"numFound":0,"start":0,"docs":[]
}}
Solr Query 2: searchcontent_t_de:(*Trommelfilter*)
Результат:
{
"responseHeader":{
"status":0,
"QTime":8,
"params":{
"q":"searchcontent_t_de:(*Trommelfilt*)",
"indent":"on",
"wt":"json",
"_":"1554983656940"}},
"response":{"numFound":1,"start":0,"docs":[
{
...
"_templatename":"Application",
"culture_s":"de-DE",
"_database":"master",
"searchcontent_t_de":"... einen Trommelfilter gereinigt. ...",
"_language":"de-DE",
...
}}
Ответственный код настроенной схемы в solr для затронутого ядра.Конфигурация для searchcontent_t_de осуществляется через dynamicField.
<dynamicField name="*_t_de" type="text_de" indexed="true" stored="true" />
...
<fieldType name="text_de" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_de.txt" format="snowball" />
<filter class="solr.GermanNormalizationFilterFactory" />
<filter class="solr.GermanLightStemFilterFactory" />
<!-- less aggressive: <filter class="solr.GermanMinimalStemFilterFactory"/> -->
<!-- more aggressive: <filter class="solr.SnowballPorterFilterFactory" language="German2"/> -->
</analyzer>
</fieldType>
Я хочу знать, какое изменение мне нужно сделать, чтобы получить ожидаемый результат (полное слово должно быть найдено).