Выделить согласованный текст для термина запроса в solr

Я установил solr jetty 5.1.3 и проиндексировал более 15000 документов, используя tika. Я проиндексировал и сохранил дату публикации документа и содержание в SOLR. Я включил выделенный в solrConfig.xml, Вот XML обработчик запросов для выделенных терминов

<requestHandler name="/select" class="solr.SearchHandler">
    <!-- default values for query parameters can be specified, these
         will be overridden by parameters in the request
      -->
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <int name="rows">10</int>
       <str name="hl">on</str>
       <str name="hl.fl">content</str>
       <str name="hl.simple.pre">&lt;b&gt;</str>
       <str name="hl.simple.post">&lt;/b&gt;</str>
       <str name="f.content.hl.snippets">3</str>
       <str name="f.content.hl.fragsize">200</str>
       <str name="f.content.hl.maxAnalyzedChars">200000</str>
       <str name="f.content.hl.alternateField">content</str>
       <str name="f.content.hl.maxAlternateFieldLength">750</str>
     </lst>

    </requestHandler>

  <!-- A request handler that returns indented JSON by default -->
  <requestHandler name="/query" class="solr.SearchHandler">
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <str name="wt">json</str>
       <str name="indent">true</str>
       <str name="df">content</str>
       <str name="hl">on</str>
       <str name="hl.fl">content</str>
       <str name="hl.simple.pre">&lt;b&gt;</str>
       <str name="hl.simple.post">&lt;/b&gt;</str>
       <str name="f.content.hl.snippets">3</str>
       <str name="f.content.hl.fragsize">200</str>
       <str name="f.content.hl.maxAnalyzedChars">200000</str>
       <str name="f.content.hl.alternateField">content</str>
       <str name="f.content.hl.maxAlternateFieldLength">750</str>
     </lst>
  </requestHandler>

Он возвращает мне до трех основных моментов, и текст поиска выделен жирным шрифтом. например, если я ищу "Lorem" в запросе, то он мне подсвечивает что-то подобное

Lorem Ipsum Dolor Sit Amet 2016, концертмейстер Adipiscing Elit. Sed volutpat metus lorem, плацерат nibh sodales in. Cras in mauris tempus, vulputate felis eu, tincidunt erat.

Но когда я ищу документ, в котором была дата публикации между прошлым 1 годом и сейчас, он выделяет два термина. Например, если я ищу " "Lorem"и docPublishDate:[2015-01-20 TO 2016-01-20] " Тогда он возвращает мне основные моменты что-то вроде этого:

Lorem Ipsum Dolor Sit Amet 2016, концертмейстер Adipiscing Elit. Sed volutpat metus lorem, плацерат nibh sodales in. Cras in mauris tempus, vulputate felis eu, tincidunt erat.

Я не хочу, чтобы этот текст также выделялся в 2016 году. Я хочу, чтобы это только смело Lorem. Что я должен сделать, чтобы достичь этого?

1 ответ

Решение

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

Вы также можете использовать hl.q Параметр для использования определенного запроса для выделения, так что вы также можете отправить запрос на подсветку без части даты - но этот случай, кажется, лучше подходит для использования запроса фильтра.

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