Сортировка предложений в solr на основе позиции ключевого слова

Я использую компонент Suggest в версии solr 6.5. Я настроил BlendidInfixLookupFactory для сортировки предложений по ключевому слову поиска.

Ниже моя текущая конфигурация:

<searchComponent name="suggest" class="solr.SuggestComponent">
    <lst name="suggester">
      <str name="name">mySuggester</str>
      <str name="lookupImpl">BlendedInfixLookupFactory</str>
	  <str name="dictionaryImpl">DocumentDictionaryFactory</str>   
      <str name="field">title</str>
	  <str name="suggestAnalyzerFieldType">text_general</str>
	  <str name="blenderType">position_linear</str>
	  <str name="numFactor">20</str>
	</lst>
  </searchComponent>
  
  <requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
    <lst name="defaults">
      <str name="suggest">true</str>
      <str name="suggest.count">10</str>
    </lst>
    <arr name="components">
      <str>suggest</str>
    </arr>
  </requestHandler> 

Но это не сортировка на основе позиции ключевого слова, и она возвращается в случайном порядке и не уверена, какой порядок соблюдается. Согласно документации solr, он должен сортироваться по позиции, но не работает в таком порядке.

Например: мое ключевое слово для поиска – синий.

Мои ожидаемые результаты: синий, синий кит, голубая вода, небесно-голубой, есть синяя игрушка

Фактические результаты: небесно-голубое, синий кит, есть синяя игрушка, голубая вода, голубое

Может кто-нибудь, пожалуйста, дайте мне знать, возможно ли сортировать таким образом?


person User1203    schedule 11.01.2018    source источник


Ответы (1)


В соответствии с вашей конфигурацией вы не используете какой-либо вес для этих предложений, поэтому значение всегда равно 0. Таким образом, для всех предложений position_linear будет таким же, как и логика для расчета: position_linear: weightFieldValue * (1 - 0,10 * position).

Вы можете добавить одно поле, которое может иметь постоянное значение для всех предложений, поэтому, когда вы пытаетесь сделать положение линейным, оно будет увеличиваться на позицию в соответствии с условиями.

надеюсь, это поможет

person rubihali    schedule 25.01.2018