[英]Elasticsearch: Update mapping field type ID from long to string
我將 elasticsearch 映射字段類型從:
"articles": {
"properties": {
"id": {
"type": "long"
}}}
到
"articles": {
"properties": {
"id": {
"type": "string",
"index": "not_analyzed"
}
之后我做了以下步驟:
映射更新后,我之前的查詢過濾器不再起作用,並且沒有結果:
GET /art/_search
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"bool": {
"must": [
{
"type": {
"value": "articles"
}
},
{
"term": {
"id": "123467679"
}
}
]
}
}
}
},
"size": 1,
"sort": [
{
"_score": "desc"
}
]
}
如果我檢查這個查詢結果是我所期望的:
GET /art/articles/_search
{
"query": {
"match_all": {}
}
}
如果有人知道為什么在字段類型更改后查詢不再工作,我將不勝感激。
謝謝!
查詢中的問題是 ID 過濾器。 查詢工作正常,將過濾器更改為:
"term": {
"id": "123467679"
}
在:
"term": {
"_id": "123467679"
}
我仍然是 Elasticsearch 的初學者,想弄清楚為什么雖然我進行了重新索引,但映射更改破壞了查詢,但“_id”修復了我的查詢。
您可以在: elasticsearch 映射參考文檔中找到更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.