2017-10-16 95 views
0

我有一個字段最初設置爲"index": false,因爲我們認爲我們不需要在此特定字段上進行查詢。它現在大約9個月後,我們有一個新的功能要求,這將要求我們在這個領域進行查詢。如何在ElasticSearch中將字段從index = false更改爲index = true

我知道ES提供了一些不錯的功能fields,讓您更多的功能添加到一個領域,但它似乎沒有讓你從index = false通過簡單地增加一個子場去index = true

經過一些Google搜索後,我無法找到解決這個問題的方法,它不涉及1)全部創建新字段或2)重新索引所有數據。

有誰知道乾淨/無副作用的方式添加這種功能到現有的領域?如果不是,建議的過程是什麼?

以下是當前場的樣子:

{ 
    "mappings": { 
     "entity": { 
     "properties": { 
      "contentType": { 
      "type": "keyword", 
      "index": false 
      } 
     } 
     } 
    } 
} 

就像我說的,我希望找到改變"index"true

感謝的最徹底的方法!

+0

據我所知,現有的映射是不可變的,這就是爲什麼你只能看到這兩種方法 – Miek

+0

啊真的......好吧所以在這兩種選擇之間,創建一個新的字段可能是獲取東西的最佳選擇儘快工作。 –

+0

你有多少內容? Reindexing可能是理想的選擇,但你是對的,添加一個新的領域是可以返回與源代碼相同的數據可能是最簡單的解決方案。 – Miek

回答

1

你需要創建一個新的索引和重新索引恐怕。

Reindex API雖然可以是一個很大的幫助。