Elasticsearch-рельсы, основной запрос

Я пытаюсь получить блики от драгоценного камня Elasticsearch-rails, но не могу заставить его работать.

Мой метод поиска:

query = {
  query: {
    filtered: {
      query: {
        match: {
          _all: params[:q]
        }
      },
      filter: {
        term: {
          active: true
        }
      }
    },
  },
  highlight: {
    fields: {
      _all: {fragment_size: 150, number_of_fragments: 3}
    }
  }
}

@results = Elasticsearch::Model.search(query, [Market, Component]).results

Когда я сопоставляю свои результаты в представлении, чтобы проверить, есть ли какие-либо блики, я получаю массив false:

= @results.map(&:highlight?)

Я прочитал документы Elasticsearch здесь: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-highlighting.html и документацию к драгоценному камню здесь: https://github.com/elastic/elasticsearch-rails/tree/master/elasticsearch-model и мой запрос кажется правильным. Не уверен, как поступить.

1 ответ

Решение

Видимо, решение было использовать "*" вместо "_all":

query = {
  query: {
    filtered: {
      query: {
        match: {
          _all: params[:q]
        }
      },
      filter: {
        term: {
          active: true
        }
      }
    },
  },
  highlight: {
    tags_schema: "styled",
    fields: {
      :"*" => {}
    }
  }
}
Другие вопросы по тегам