我正在尝试构建一个查找所有用户文档(docType = user)的查询,然后根据许多过滤器对其进行过滤.例如位置,性别,年龄等.根据我正在构建的搜索功能的用户输入添加/删除过滤器.
下面没有返回结果:
{ "query": { "filtered": { "query": { "match_all": {} }, "filter": { "and": { "filters": [ { "term": { "doc.docType": "user" } }, { "term": { "doc.data.profile.location" : "CA" } } ] } } } } }
返回结果如下:
{ "query": { "filtered": { "query": { "field": { "doc.data.profile.location" : "CA" } }, "filter": { "and": { "filters": [ { "term": { "doc.docType": "user" } } ] } } } } }
后者虽然返回结果,但从长远来看不会起作用,因为我可能想要为年龄,性别等添加额外的过滤器,我似乎无法添加多个字段.如果我删除了位置过滤器,则第一个查询有效.
任何指导帮助非常感谢.
bool过滤器允许您链接多个MUST
,SHOULD
并SHOULD_NOT
一起请求.允许您将其构建为一个查询.