根據Elasticsearch documentation有可能排除從場_all使用include_in_all設置字段(設置爲假)。我需要從_all中排除一個字段,我使用spring數據elasticsearch確定了我的映射。我還沒有找到辦法這樣做。include_in_all設置elasticsearch
這是可能的使用彈簧數據elasticsearch註釋?
根據Elasticsearch documentation有可能排除從場_all使用include_in_all設置字段(設置爲假)。我需要從_all中排除一個字段,我使用spring數據elasticsearch確定了我的映射。我還沒有找到辦法這樣做。include_in_all設置elasticsearch
這是可能的使用彈簧數據elasticsearch註釋?
不幸的是,Spring Data Elasticsearch無法做到這一點。改善請求已經一歲多,但它的優先級是輕微的,所以是沒有希望的現在: https://jira.spring.io/browse/DATAES-226
我在去年的項目,我必須通過「_all」做了很多簡單的搜索(而不是一個字段,我每個字段使用1次搜索),然後統一所有結果。我假設Spring Data Elasticsearch沒有很好的解決這個問題的方法。
你可以保存你的類型到一個json文件的映射。然後,將''include_in_all':false'添加到要排除的字段。這應該看起來像這樣。
{
"my_type": {
"properties": {
"excludedField": {
"type": "text",
"include_in_all": false
}
}
}
}
然後用自己喜歡的JSON閱讀器加載該文件,解析它作爲一個字符串,並與elasticsearch API改變你的映射。
client.admin().indices()
.preparePutMapping("my_index")
.setType("my_type")
.setSource(loadedFileString)
.get();
編輯:我只注意到你想要使用的註釋吧。也許@Field註解有一個參數呢?對不起,我對註釋沒有經驗。
不幸的是,它沒有。註釋更容易,更不容易出錯,這就是爲什麼我更喜歡它們,但我可能沒有選擇,只能按照你的建議。儘管我認爲這將需要重寫所有從註釋到json的映射,因爲它們可能無法一起使用。謝謝回覆! – onlyahobo
您不需要重寫映射,只需在索引中檢查它們並複製粘貼即可。是的,我猜api總是有點落後,所以誰知道何時添加功能。 – SlideM