簡體   English   中英

ElasticSearch NEST - 使用 client.Get 在所有索引中搜索文檔

[英]ElasticSearch NEST - Using client.Get to get search for a document across all indexes

使用 NEST v6.4.2

我需要使用 client.Get API 來獲取一個文檔,該文檔搜索所有索引而不是一個索引。

我的代碼如下所示:

   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));

以前有人這樣做過嗎? 文檔似乎表明您可以使用 client.Search API 執行此操作,但這對於檢索單個文檔並不是最佳選擇,因此我希望盡可能避免。

謝謝

來自 elasticsearch 6.x 的文檔

單索引 API(例如 Document API 和單索引別名 API)不支持多個索引。

但是您可以對_id字段進行術語查詢以根據 id 檢索文檔

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

希望有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM