我有以下查询:
GET product,account/producttype,accounttype/_search
{
"query": {
"bool": {
"should": [
{
"bool": {
"must": [
{
"nested": {
"query": {
"bool": {
"should": [
{
"match": {
"keywords.keyword": {
"query": "search query"
}
}
},
{
"term": {
"keywords.keyword.keyword": {
"value": "search query"
}
}
}
]
}
},
"path": "keywords"
}
}
],
"filter": [
{
"term": {
"_index": {
"value": "product"
}
}
}
]
}
},
{
"bool": {
"must": [
{
"multi_match": {
"query": "search query",
"operator": "or",
"fields": [
"accountName^1.5",
"description^0.8"
]
}
}
],
"filter": [
{
"term": {
"_type": {
"value": "accounttype"
}
}
}
]
}
}
]
}
}
}
当我运行上述查询时,我得到了这个例外:
“index”:“帐户”, “caused_by”:{ “type”:“illegal_state_exception”, “reason”:“[嵌套]无法在路径[keywords]下找到嵌套对象” }
内部索引帐户没有名为Keywords的嵌套对象。
过去指数查询用于解决此问题,但现在已弃用。
现在上面的查询显示:我正在使用 _index 进行过滤,但它仍然会给我错误。
那么,你能指导我摆脱那个异常并让我的查询工作吗?
PS:
我正在使用elasticsearch v5.1.1
答案 0 :(得分:0)
您只需调整网址即可指向正确的索引:GET product/producttype/_search