我想爲我的索引更新elasticsearch中的默認映射。但是所有的文檔都指出,我們必須提供更新映射的類型。問題是我有很多索引類型,並且它們是在出現新類型的文檔時動態創建的。所以處理的最佳方式是默認映射類型。因爲我不必爲每種類型定義映射。但現在我無法更新我的索引默認映射。如果有可能請讓我知道?更新elasticsearch中的默認索引映射
0
A
回答
0
我用default mapping如下:
我創建索引,指定_default_
映射。在這種情況下,我只有一個單一的領域,但我想,以確保它不會分析(這樣我就可以跨類型做小面,說):
curl -XDELETE "http://localhost:9200/test_index"
curl -XPUT "http://localhost:9200/test_index" -d'
{
"mappings": {
"_default_": {
"properties": {
"title": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}'
然後,我創建了幾個文件,每一個不同的類型:
curl -XPUT "http://localhost:9200/test_index/doc_type1/1" -d'
{ "title": "some text" }'
curl -XPUT "http://localhost:9200/test_index/doc_type2/2" -d'
{ "title": "some other text" }'
因此,對於每種類型映射將被動態地產生,並且將包括用於"title"
默認映射。我們可以通過查看映射看到這一點:
curl -XGET "http://localhost:9200/test_index/_mapping"
...
{
"test_index": {
"mappings": {
"_default_": {
"properties": {
"title": {
"type": "string",
"index": "not_analyzed"
}
}
},
"doc_type2": {
"properties": {
"title": {
"type": "string",
"index": "not_analyzed"
}
}
},
"doc_type1": {
"properties": {
"title": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}
如果我刻面的title
場我會找回我的期望:
curl -XPOST "http://localhost:9200/test_index/_search" -d'
{
"size": 0,
"facets": {
"title_values": {
"terms": {
"field": "title",
"size": 10
}
}
}
}'
...
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 0,
"hits": []
},
"facets": {
"title_values": {
"_type": "terms",
"missing": 0,
"total": 2,
"other": 0,
"terms": [
{
"term": "some text",
"count": 1
},
{
"term": "some other text",
"count": 1
}
]
}
}
}
這裏是我使用的代碼:
http://sense.qbox.io/gist/05c503ce9ea841ca4013953b211e00dadf6f1549
這是回答您的問題嗎?
編輯:這裏是你如何可以更新_default_
映射現有索引:(我用Elasticsearch版本1.3.4這個答案,順便說一句)
curl -XPUT "http://localhost:9200/test_index/_default_/_mapping" -d'
{
"_default_": {
"properties": {
"title": {
"type": "string",
"index": "not_analyzed"
},
"name": {
"type": "string",
"index": "not_analyzed"
}
}
}
}'
相關問題
- 1. 設置默認映射Elasticsearch
- 2. ElasticSearch字段在索引時默認映射爲字符串
- 3. 更新ElasticSearch映射
- 4. 通過更新索引模板更新Elasticsearch映射
- 5. 如何將文檔批量索引到ElasticSearch的默認映射中?
- 6. 更新映射在我的索引(elasticsearch 1.4)
- 7. Elasticsearch默認映射嵌套領域
- 8. 將當前索引複製到新索引以使用更新後的映射/索引模板(ElasticSearch)
- 9. Elasticsearch 2.x索引映射_id
- 10. 更改elasticsearch映射
- 11. Elasticsearch更新索引模板
- 12. JacksonJaxbJsonProvider默認的objectmapper映射
- 13. 無法更改映射ElasticSearch
- 14. ElasticSearch:僅索引映射中指定的字段
- 15. 玩笑ElasticSearch搜索API映射命中
- 16. 爲elasticsearch中的所有索引創建默認索引模板5.2
- 17. 將現有ElasticSearch索引重新索引到更新的模板
- 18. ElasticSearch映射Charfilter
- 19. Elasticsearch映射
- 20. ElasticSearch geo_shape映射
- 21. 映射在elasticsearch
- 22. 爲什麼在Elasticsearch中創建索引時這個新映射不起作用?
- 23. Elasticsearch重新索引
- 24. 在不刪除映射的情況下刪除Elasticsearch索引
- 25. Elasticsearch:使用映射到索引1場不同的方式
- 26. 如何爲Elasticsearch映射/索引嵌套的Twitter數據(json)
- 27. 使用映射創建索引時的ElasticSearch異常(嵌套5.2.0)
- 28. servlet映射到默認/ tomcat中
- 29. 在ElasticSearch中重新索引索引以更改分片數量
- 30. 更改aws kibana的Elasticsearch映射