Как ссылки в данной ссылкеТочное слово не повышая значительно Solr
https://wiki.apache.org/solr/SolrRelevancyFAQ#How_can_I_make_exact-case_matches_score_higher
Я попробовал один пример. моя конфигурация schema.xml, приведенная ниже.
<field name="product_name" type="text_wslc" indexed="true" stored="true" required="true" multiValued="false"/>
<field name="nameString" type="string_ci" indexed="true" stored="false" required="true" />
<copyField source="product_name" dest="nameString"/>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0" />
<fieldType name="text_wslc" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="1"
catenateWords="1"
catenateNumbers="1"
catenateAll="1"
preserveOriginal="1"
/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" />
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.KStemFilterFactory"/>
<filter class="solr.EnglishMinimalStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="1"
catenateWords="1"
catenateNumbers="1"
catenateAll="1"
preserveOriginal="1"
/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" />
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.KStemFilterFactory"/>
<filter class="solr.EnglishMinimalStemFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="string_ci" class="solr.TextField" tMissingLast="true" omitNorms="true">
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Точный поиск слова прекрасно работает с этим.
Но нечеткий поиск с точным совпадением не дает ожидаемого результата. Это мой запрос
/select?q=(laptop bag)&defType=dismax&qf=nameString^22+product_name^0.1
Любая помощь?
"nameString" в избранном, а не в «nameSrting»? – Zac
Нет, это была моя ошибка – Juhan
Это сообщение имеет именно то, что вам нужно: http://stackoverflow.com/questions/30659452/solr-exact-word-result-come-first/30734896#30734896 –