Придавать значение близости слов, а не количеству слов в документах с Apache Solr
Я работаю над приложением rails, которое основано на поисковой системе Apache Solr, и мы используем гем Sunspot. Но я сталкиваюсь с одной проблемой, если я ищу запрос source of source
то дает мне тысячи результатов, используя and
результат. Но я чувствую, что первые 5 результатов не более актуальны, после 5-го результата результаты актуальны. Первые 5 результатов содержат только исходное слово много раз, но мой 6-й результат содержит точный запрос i.e source of source
поэтому я хочу придать значение документам, которые содержат именно текст моего запроса, а не другой. Я также попробовал с надстройкой и также усилил документ, но не получил должного результата. Может ли кто-нибудь помочь мне найти способ придать большее значение документам, которые содержат точный мой запрос, а не документам, которые содержат больше словесного источника?
Мой schema.xml содержит следующий код
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.PatternTokenizerFactory" pattern="[\s,\.;\(\)]+"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
<!-- *** This fieldType is generated for exact match boosting *** -->
<fieldType name="text_exact" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Любая помощь оценивается