Elasticsearch使您能夠查詢存在於或不在這些索引上的字段上的多個索引。Elasticsearch帶有地理邊界框查詢的多索引查詢
但是,如果所查詢的字段在所有請求的索引中都不存在,那麼當查詢多個帶有geo_bounding_box彈性的索引時會拋出異常。
似乎彈性檢查是否所需的字段映射爲地理點。
有沒有辦法實現這個查詢,而無需編輯映射並在所有indecies中添加所有geo_fileds?
Elasticsearch使您能夠查詢存在於或不在這些索引上的字段上的多個索引。Elasticsearch帶有地理邊界框查詢的多索引查詢
但是,如果所查詢的字段在所有請求的索引中都不存在,那麼當查詢多個帶有geo_bounding_box彈性的索引時會拋出異常。
似乎彈性檢查是否所需的字段映射爲地理點。
有沒有辦法實現這個查詢,而無需編輯映射並在所有indecies中添加所有geo_fileds?
您可以使用indices
query排列如下bool/should
。這樣您就不會冒着用錯誤的字段名稱查詢索引的風險:
POST /indexA,indexB/_search
{
"query": {
"bool": {
"should": [
{
"indices": {
"indices": [
"indexA"
],
"query": {
"geo_bounding_box": {
"x_location": {...} }
}
}
},
{
"indices": {
"indices": [
"indexB"
],
"query": {
"geo_bounding_box": {
"y_location": {...}
}
}
}
}
]
}
}
}
也許只包含搜索中包含地理域的索引。 – Val
問題是,所有的索引都包含地理區域,但不具有相同的名稱。例如索引A.x_location,索引B.y_location以及在兩個字段中使用帶有should的bool查詢的查詢。 – User1234