【发布时间】:2015-12-20 21:31:03
【问题描述】:
我正在尝试查找给定用户的儿童帐户的所有记录。
我现在拥有的:
@parent = @user.id
@children = User.search ("*"),
page: params[:page], per_page: 20,
# Discard account that don't have coordinates to avoid distance errors
where: {
coordinates: {not: nil},
role: :organization,
parent_id: @parent
},
order: {_geo_distance: {coordinates: {lat: @coordinates[1], lon: @coordinates[0]}, order: "asc", unit: "mi"} }
这会运行以下查询:
curl http://localhost:1234/users_development/_search?pretty -d '{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"and": [
{
"not": {
"filter": {
"missing": {
"field": "coordinates",
"existence": true,
"null_value": true
}
}
}
},
{
"term": {
"role": "organization"
}
},
{
"term": {
"parent_id": {
"$oid": "44fa9f8962656e0404bd3310"
}
}
}
]
}
}
},
"size": 20,
"from": 0,
"sort": {
"_geo_distance": {
"coordinates": {
"lat": -118.3919,
"lon": 34.1379
},
"order": "asc",
"unit": "mi"
}
},
"fields": []
}'
当我在控制台中查找其中一个子用户时,我看到了 parent_id:<BSON::ObjectId:0x70205146889309 data=44fa9f8962656e0404bd3310>
我运行的查询给出了Searchkick::InvalidQueryError ([400] {"error":"SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures...
我很确定我输入错误的查询不知何故。正确的语法是什么?
这是完整的错误:
Searchkick::InvalidQueryError ([400] {"error":"SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[MRKTgyLfTGSnADDAIoMdLg][users_development_20151220094401447][0]: SearchParseException[[users_development_20151220094401447][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"filtered\":{\"query\":{\"match_all\":{}},\"filter\":{\"and\":[{\"not\":{\"filter\":{\"missing\":{\"field\":\"coordinates\",\"existence\":true,\"null_value\":true}}}},{\"term\":{\"role\":\"organization\"}},{\"term\":{\"parent_id\":{\"$oid\":\"44fa9f8962656e0404bd3310\"}}}]}}},\"size\":20,\"from\":0,\"sort\":{\"_geo_distance\":{\"coordinates\":{\"lat\":-118.3919,\"lon\":34.1379},\"order\":\"asc\",\"unit\":\"mi\"}},\"fields\":[]}]]]; nested: QueryParsingException[[users_development_20151220094401447] [term] filter does not support [$oid]]; }{[MRKTgyLfTGSnADDAIoMdLg][users_development_20151220094401447][1]: SearchParseException[[users_development_20151220094401447][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"filtered\":{\"query\":{\"match_all\":{}},\"filter\":{\"and\":[{\"not\":{\"filter\":{\"missing\":{\"field\":\"coordinates\",\"existence\":true,\"null_value\":true}}}},{\"term\":{\"role\":\"organization\"}},{\"term\":{\"parent_id\":{\"$oid\":\"44fa9f8962656e0404bd3310\"}}}]}}},\"size\":20,\"from\":0,\"sort\":{\"_geo_distance\":{\"coordinates\":{\"lat\":-118.3919,\"lon\":34.1379},\"order\":\"asc\",\"unit\":\"mi\"}},\"fields\":[]}]]]; nested: QueryParsingException[[users_development_20151220094401447] [term] filter does not support [$oid]]; }{[MRKTgyLfTGSnADDAIoMdLg][users_development_20151220094401447][2]: SearchParseException[[users_development_20151220094401447][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"filtered\":{\"query\":{\"match_all\":{}},\"filter\":{\"and\":[{\"not\":{\"filter\":{\"missing\":{\"field\":\"coordinates\",\"existence\":true,\"null_value\":true}}}},{\"term\":{\"role\":\"organization\"}},{\"term\":{\"parent_id\":{\"$oid\":\"44fa9f8962656e0404bd3310\"}}}]}}},\"size\":20,\"from\":0,\"sort\":{\"_geo_distance\":{\"coordinates\":{\"lat\":-118.3919,\"lon\":34.1379},\"order\":\"asc\",\"unit\":\"mi\"}},\"fields\":[]}]]]; nested: QueryParsingException[[users_development_20151220094401447] [term] filter does not support [$oid]]; }{[MRKTgyLfTGSnADDAIoMdLg][users_development_20151220094401447][3]: SearchParseException[[users_development_20151220094401447][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"filtered\":{\"query\":{\"match_all\":{}},\"filter\":{\"and\":[{\"not\":{\"filter\":{\"missing\":{\"field\":\"coordinates\",\"existence\":true,\"null_value\":true}}}},{\"term\":{\"role\":\"organization\"}},{\"term\":{\"parent_id\":{\"$oid\":\"44fa9f8962656e0404bd3310\"}}}]}}},\"size\":20,\"from\":0,\"sort\":{\"_geo_distance\":{\"coordinates\":{\"lat\":-118.3919,\"lon\":34.1379},\"order\":\"asc\",\"unit\":\"mi\"}},\"fields\":[]}]]]; nested: QueryParsingException[[users_development_20151220094401447] [term] filter does not support [$oid]]; }{[MRKTgyLfTGSnADDAIoMdLg][users_development_20151220094401447][4]: SearchParseException[[users_development_20151220094401447][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"filtered\":{\"query\":{\"match_all\":{}},\"filter\":{\"and\":[{\"not\":{\"filter\":{\"missing\":{\"field\":\"coordinates\",\"existence\":true,\"null_value\":true}}}},{\"term\":{\"role\":\"organization\"}},{\"term\":{\"parent_id\":{\"$oid\":\"44fa9f8962656e0404bd3310\"}}}]}}},\"size\":20,\"from\":0,\"sort\":{\"_geo_distance\":{\"coordinates\":{\"lat\":-118.3919,\"lon\":34.1379},\"order\":\"asc\",\"unit\":\"mi\"}},\"fields\":[]}]]]; nested: QueryParsingException[[users_development_20151220094401447] [term] filter does not support [$oid]]; }]","status":400}):
【问题讨论】:
-
您能否添加您看到的完整错误,尤其是
shardFailures之后的错误? -
当然。添加到我上面的帖子中。