как упругий поиск находит содержание документа по идентификатору документа - PullRequest
0 голосов
/ 18 сентября 2018

В эластичном поиске много статей, в которых говорится об инвертированном индексе и списке рассылки.Но я не нашел ни одной статьи, которая объясняет, как с помощью упругого поиска можно найти содержимое документа по идентификатору документа.Может ли кто-нибудь объяснить это мне?ТНХ.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Рагав прав.Тем не менее, у меня есть кое-что, что может помочь вам работать с идентификаторами документов.

Когда вы индексируете документы, у которых нет идентификатора, а идентификатор создается для вас ElasticSearch.Это имя поля "_id".

Если вам известно значение Id документа, который вы хотите найти, вы можете просто выполнить запрос следующим образом:

GET my_index/_search
{
  "query": {
    "terms": {
      "_id": [ "1", "2" ] 
    }
  }
}

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-id-field.html

Приведенный выше запрос вернет документы, у которых _id равен 1 ИЛИ 2.

Как сказал Рагав в своем ответе, если вы создали документы способом, описанным с идентификатором 1 или 2, вы быверните их с тем примером запроса, который я извлек из документации ElasticSearch.

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

0 голосов
/ 18 сентября 2018

Elasticsearch построен поверх Lucene .Когда вы индексируете новый документ в Elasticsearch, он индексирует _index, _type и _id как часть документа вместе с фактическим содержимым (_source).

Итак, когда вы пытаетесь получить документ, используя API get_index / _type / _id, он в основном преобразуется в запрос, который ищет документ, соответствующий _index, _type и _id.

Вот как Elasticsearch может вернуть вам документ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...