2011-05-21 110 views
1

可以和/或嵌套在过滤器中吗? 我想过滤像这样的东西... a=1 AND (d=NULL OR d>5)弹性搜索/和嵌套可能吗?

任何人都可以帮忙吗?

+0

多一点上下文中的所有结果吗? – 2011-05-21 08:26:35

+0

和/或过滤器是可能的,但我可以嵌套它们吗? ...我想过滤,让所有的名称='rado'和日期= NULL(或未设置)或日期>'当前日期'。日期可以不设定或现在更大。 – xrado 2011-05-21 08:33:20

+0

您尚未指定您在此讨论的编程语言/环境/操作系统/等等!尝试添加一些更合适的标签。 – 2011-05-21 09:17:52

回答

1

可以在弹性搜索使用Lucene的查询字符串这样的:

http://www.elasticsearch.org/guide/reference/query-dsl/query-filter.html

,这里是进行分组),你如何使用引用(...有一点要注意的是我发现带有+必须具有符号的前缀组语句会返回更准确的结果。

http://lucene.apache.org/java/3_2_0/queryparsersyntax.html

分组是在末端。

...哦,如果你打算使用大于RangeQuery的话,可以通过 覆盖这个例子,将上限或下限设置为空。

J.

0

这可能有点晚,但如果其他人正在寻找这一点,我发现,搜索词和过滤器很容易添加。只需在查询中使用更多的单词并用空格分隔它们。

Scala的例子:

val queryString = client.prepareSearch().setQuery(QueryBuilders.matchQuery("json.path.to.node", "sky car")).setSize(MAX_RESULTS) 
val response = queryString.execute().actionGet() 

现在响应将具有containt都sky AND car