簡體   English   中英

如何在Elasticsearch中使用新變量更新索引?

[英]How to update an index with new variables in Elasticsearch?

我有一個索引“用戶”,它具有一個與“第一”,“最后”和“電子郵件”字段的映射。 具有名稱的字段在某一點被索引,然后具有電子郵件的字段在另一點被索引。 我希望這些索引具有相同的ID,對應於一個user_id參數。 所以像這樣:

function indexName(client, id, name) {
  return client.update({
    index: 'user',
    type: 'text',
    id: id,
    body: {
      first: name.first
      last: name.last 
    }
  })
}

function indexEmail(client, id, email) { 
  return client.update({
    index: 'user',
    type: 'text',
    id: id,
    body: {
      email: email
    }
  })
}

運行時:

indexName(client, "Jon", "Snow").then(indexEmail(client, "jonsnow@gmail.com"))

我收到一條錯誤消息,指出該文檔尚未創建。 如何處理字段數可變的文檔? 以及如何創建索引(如果尚未創建),然后隨即進行更新?

您正在使用的函數client.update更新文檔的一部分 您真正需要的是首先使用client.create函數創建文檔。 要創建索引和索引,您需要indices.create函數

關於文檔類型中可變字段數,這不是問題,因為Elastic Search支持動態映射 但是,建議在創建索引時提供一個映射,並嘗試堅持下去。 彈性搜索默認映射可能會在以后給您帶來問題,例如分析uuid或電子郵件地址,然后變得難以(或不可能)搜索和匹配。

暫無
暫無

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

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