2016-01-23 16 views
0

我需要一個字段(此處爲score)爲數字,其他時間爲字符串。像:如何使字段在彈性搜索中具有不同類型

{ 
    "name": "Joe" 
    "score": 32.5 
} 

{ 
    "name": "Sue" 
    "score": "NOT_AVAILABLE" 
} 

如何在彈性搜索的索引設置中對此進行表達?

我基本上想在場上「動態打字」。代碼對你來說可能沒有意義(比如:爲什麼不把它分成2個不同的字段),但是爲了一致性的原因,這是必須的。

我不需要/希望該屬性被索引/「搜索」順便說一句。我只需要數據在json響應中。我需要像「任何物體都適合這裏」的東西。

回答

2

終於明白了。我所要做的就是將enabled設置爲false,並且彈性搜索不會嘗試對數據執行任何操作 - 但它仍然存在於json響應中。

像這樣:

"score": { 
     "enabled": false 
    } 
0

只需在您的映射中將"score"字段定義爲「字符串」類型即可。而已。確保在爲任何文檔建立索引之前確實定義了映射。否則,如果您讓動態創建映射,並且"score"字段的值的類型不是索引的第一個文檔中的任何字符串,則將無法爲其中包含"score"的任何文檔編制索引。

+0

但我想'score'是一個人數太多(在其他文件)。這就是問題所在:它並不總是一個字符串 - 類型因文檔而異 – kornfridge

相關問題