ElasticSearch NEST - использование client.Get для поиска документов по всем индексам - PullRequest
0 голосов
/ 06 января 2020

Использование NEST v6.4.2

Мне нужно использовать API client.Get для извлечения документа, который выполняет поиск по ВСЕМ индексам вместо одного индекса.

Мой код выглядит следующим образом:

   var client = // intiialize elasticsearch client here
   var id = // some document id

   // the call to client.Get below fails as "" is not a valid index name
   // I have also tried passing "*", Indicies.All, Indices.AllIndices, etc but nothing works

   var document = client.Get<dynamic>(new GetRequest("", "_all", id));

Кто-нибудь делал это раньше? Документация, кажется, показывает, что вы можете сделать это с помощью API client.Search, но это не оптимально для извлечения одного документа, поэтому я хотел бы избежать, если это возможно.

Спасибо

1 Ответ

0 голосов
/ 06 января 2020

С документы дляasticsearch 6.x

API с одним индексом, такие как API документа и API с псевдонимом с одним индексом, не поддерживают несколько индексов.

, но вы можете выполнить запрос термина в поле _id, чтобы получить документы на основе идентификатора

var response = await client.SearchAsync<dynamic>(s => s
    .AllIndices()
    .AllTypes()
    .Query(q => q.Term("_id", "1")));

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

...