可以和/或嵌套在过滤器中吗?我想过滤这样的东西......a=1 AND ( d=NULL OR d>5 )
任何人都可以帮忙吗?
您可以在弹性搜索中使用这样的 Lucene 查询字符串:
http://www.elasticsearch.org/guide/reference/query-dsl/query-filter.html
这里是关于如何使用 () 进行分组的参考……要注意的一点是,我发现使用 + 必须具有符号前缀的组语句返回更准确的结果。
http://lucene.apache.org/java/3_2_0/queryparsersyntax.html
分组在最后。
...哦,如果您要使用大于 RangeQuery 可以通过将上限或下限设置为空来覆盖这种情况。
J。
这可能有点晚了,但如果其他人正在寻找这个,我发现搜索词和过滤器很容易添加。只需在查询中使用更多单词并用空格分隔它们。
斯卡拉示例:
val queryString = client.prepareSearch().setQuery(QueryBuilders.matchQuery("json.path.to.node", "sky car")).setSize(MAX_RESULTS)
val response = queryString.execute().actionGet()
现在响应将具有包含两者的所有结果sky AND car