Searchkick выделяет ненужные слова - PullRequest
0 голосов
/ 04 июля 2019

Я выделяю ненужное слово, например, я ищу "CASE № документа 2015-331" здесь список, который будет выделен поисковым запросом

  1. "CASE документа № 2015-331"
  2. "Not"
  3. "no"
  4. "on"
  5. "case is" <----- это очень странно, я не знаюпочему это </li>
  6. выделено lol
  7. "2015"
  8. "2017"
  9. "2018"
  10. "2016"
  11. "to"
  12. "Not to"

вот как выглядит мой поиск

    search = ::Document.search params[:q], fields: [:content], where: {id:
     params[:id]}, highlight: { tag: 'span class=match-matcher',
     fragment_size: @document.content.length}

    search.with_highlights.each do |document, highlights|

       document.content = highlights[:content]

    end

цель здесь - выделить "Document CASE No. 2015-331 "только

1 Ответ

0 голосов
/ 04 июля 2019

Похоже, что ваше поле было проанализировано при индексации.Если вы хотите достичь точного соответствия, и токены должны быть доступны для поиска, отображение должно быть «not_analyzed», а данные необходимо переиндексировать.

Здесь вы ищете точное совпадение.

Измените отображение для вашего поля, добавив что-то вроде ниже.

"mappings": {
    "properties": {
       "city": {
        "type": "text",
         "fields": {
           "raw": { 
             "type":  "keyword"
           }
          }
        }
      }
    }
...