Придавать значение близости слов, а не количеству слов в документах с 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>

Любая помощь оценивается

0 ответов

Другие вопросы по тегам