您可以輕鬆地創建Elasticsearch條件查詢。但是你的數據部分有一些奇怪的情況。
details={ "name"="name1",
"address":"{
"city":"city1"
}"
}
Elasticsearh將您的數據保存爲json對象,但您應該將數據作爲json。在本節中,有一個對象,您嘗試發送。讓我們來看看:
有一個detail對象的name屬性,它是一個字符串。還有一個地址屬性,它也是一個字符串。如果要通過details.address.city
訪問此對象,它應該是一個必須包含城市屬性的對象。現在我們試圖修復:
{
"id":...,
...
"details": {
"name": "name1",
"address": {
"city": "city1"
}
}
}
在這種情況下,我刪除了詳細信息對象的雙引號。現在,您可以將json的city屬性作爲json對象。現在,我們創建一個查詢到達城市:
{
"query": {
"bool": {
"must": {
"term": {
"your-json-attribute": "???"
}
},
"should": [
{
"term": {
"your-json-attribute": "???"
}
},
{
"term": {
"your-json-attribute": "???"
}
}
]
}
}
}
我用term
查詢,但還有很多其他的查詢類型。你可以檢查他們的文件。但對於And
和Or
,可以使用bool
查詢。檢查https://www.elastic.co/guide/en/elasticsearch/reference/2.0/query-dsl-bool-query.html
嗨blackmamba,感謝您的建議。現在我改變了我的問題,你可以建議我改變的查詢 – venkat
你能給我你的映射嗎?你現在正在嘗試什麼查詢? – blackmamba
你給我想法我問的問題,還有一件事是,對於cond2我需要檢查我的嵌套對象內城市的價值。 – venkat