尝试跨多个索引查询时出现以下错误:
{
"type": "parsing_exception",
"reason": "unknown field [locations.addresses.lat_lon]",
"line": 1,
"col": 0
}
这很有意义,因为我的索引之一不包含该属性。如何将一个字段用于一个索引,将另一个字段用于另一个索引?
当前,我的查询是功能得分查询,该功能似乎不支持其他查询所拥有的ignore_mapping
选项(在创建得分的函数中使用此字段)。我还将它作为“地理距离查询”的一部分,该查询确实支持ignore_mapping
选项,并且该部分正在运行。
示例查询:
{
"min_score": 0.1,
"query": {
"function_score": {
"score_mode": "multiply",
"query": {
"bool": {
"filter": [],
"minimum_should_match": 1,
"should": [
{
"bool": {
"minimum_should_match": 1,
"filter": [
{
"term": {
"_index": {
"value": "network_connections"
}
}
},
{
"nested": {
"path": "locations",
"ignore_unmapped": true,
"query": {
"geo_distance": {
"distance": "25mi",
"locations.addresses.lat_lon": {
"lat": 30.432242,
"lon": -97.7145152
}
}
}
}
}
],
"should": {
"dis_max": {
"queries": [
{
"common": {
"name": {
"query": "test",
"cutoff_frequency": 0.01,
"boost": 2
}
}
}
]
}
}
}
}
]
}
},
"functions": [
{
"gauss": {
"locations.addresses.lat_lon": {
"origin": {
"lat": 30.432242,
"lon": -97.7145152
},
"offset": "5mi",
"scale": "12.5mi"
}
}
}
]
}
}
}
我正在执行额外的geo_distance查询,以在基于距离的搜索中设置硬边界(我曾尝试仅修改min_score和gauss函数,但无法使其用作硬边界)。 / p>
我的主要问题是在跨多个索引搜索时如何避免出现unknown field
错误