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