使用或不使用关键字过滤查询
Filter query with or without keyword
我有一个带有名称列和 category_id 列的 table。下面的查询 return 是一个 BadRequest
错误。我认为这是错误 blob 中最有意义的 returned。
*注:"something*"
是我传入的关键字,用来搜索
Expected field name but got START_OBJECT
我正在寻找一个查询,该查询将 return 结果由 category_id
过滤,有或没有关键字搜索。
{
query: {
bool: {must: [{
wildcard: {name: "something*"}
]},
filtered: {
filter: {
bool: {
must: {
term: {category_id: 1}
}
}
}
}
},
sort: [{
_geo_distance: {
store_location: {:lat=>0, :lon=>0},
order: "asc",
unit: "miles"
}
}]
}
这个查询有什么问题?
如果我猜(即,这是未经测试的),我会说这是因为你的 bool 在 filtered
子查询之外。将它移动到你的 filtered
子查询中的 query
子查询中,如下所示:
{
query: {
filtered: {
query: {
bool: {must: [{
wildcard: {name: "something*"}
]},
},
filter: {
bool: {
must: {
term: {category_id: 1}
}
}
}
}
},
sort: [{
_geo_distance: {
store_location: {:lat=>0, :lon=>0},
order: "asc",
unit: "miles"
}
}]
}
我有一个带有名称列和 category_id 列的 table。下面的查询 return 是一个 BadRequest
错误。我认为这是错误 blob 中最有意义的 returned。
*注:"something*"
是我传入的关键字,用来搜索
Expected field name but got START_OBJECT
我正在寻找一个查询,该查询将 return 结果由 category_id
过滤,有或没有关键字搜索。
{
query: {
bool: {must: [{
wildcard: {name: "something*"}
]},
filtered: {
filter: {
bool: {
must: {
term: {category_id: 1}
}
}
}
}
},
sort: [{
_geo_distance: {
store_location: {:lat=>0, :lon=>0},
order: "asc",
unit: "miles"
}
}]
}
这个查询有什么问题?
如果我猜(即,这是未经测试的),我会说这是因为你的 bool 在 filtered
子查询之外。将它移动到你的 filtered
子查询中的 query
子查询中,如下所示:
{
query: {
filtered: {
query: {
bool: {must: [{
wildcard: {name: "something*"}
]},
},
filter: {
bool: {
must: {
term: {category_id: 1}
}
}
}
}
},
sort: [{
_geo_distance: {
store_location: {:lat=>0, :lon=>0},
order: "asc",
unit: "miles"
}
}]
}