2015-05-01 32 views
0

我有一个名称列和category_id列的表。以下查询返回BadRequest错误。我认为这是从错误blob返回的最有意义的。带或不带关键字的过滤器查询

*备注:"something*"是我通过搜索的关键字。

Expected field name but got START_OBJECT 

我要寻找的查询将返回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" 
    } 
    }] 
} 

这个查询有什么问题?

+0

mysql?不这么认为。 –

回答

0

如果我猜测(即未经测试),我会说这是因为你的子查询之外已经有了bool。把它移动到你的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" 
    } 
    }] 
} 
+0

查询已处理,但返回的结果为零。我有'category_id:1'的数据,我期待。但是,此查询不返回任何结果。 –