Java elasticsearch中不推荐使用过滤API
我正在使用java API来实现以下输入,但在java API/Elastic 1.4中,FilterBuilders.filtered被弃用 我的目标是实现类似MySQL中WHERE的条件Java elasticsearch中不推荐使用过滤API,java,elasticsearch,Java,elasticsearch,我正在使用java API来实现以下输入,但在java API/Elastic 1.4中,FilterBuilders.filtered被弃用 我的目标是实现类似MySQL中WHERE的条件 WHERE id=1 and city="newyork" 在输出中,我需要点击列表,不需要单独的存储桶。我是elasticsearch和API的新手 如何实现过滤(已弃用)之前所做的工作?弹性1.4中的JAVA API也支持过滤 查询DSL { "query": { "filtered"
WHERE id=1 and city="newyork"
在输出中,我需要点击列表,不需要单独的存储桶。我是elasticsearch和API的新手
如何实现过滤(已弃用)之前所做的工作?弹性1.4中的JAVA API也支持过滤 查询DSL
{
"query": {
"filtered": {
"filter": {
"and": {
"filters": [
{
"term": {
"id": 5
}
},
{
"term": {
"city": "newyork"
}
}
]
}
}
}
}
}
JAVA API
FilterBuilders.andFilter(
FilterBuilders.termFilter("id", 5),
FilterBuilders.termFilter("city", "newyork")
);
虽然为时已晚,但它可能会帮助其他人。
过滤的
查询被Elasticsearch 2.0版的bool
查询所取代。看
在Java中,您可以有如下内容:-
FilterBuilders.boolFilter()
.must(FilterBuilders.queryFilter(QueryBuilders.matchAllQuery()))
.filter(FilterBuilders.boolFilter()
.must(FilterBuilders.termFilter("id", 5))
.must(FilterBuilders.termFilter("city", "newyourk"))
);
是的,它是受支持的,但它显示了针对已筛选的已弃用/待弃用警告。我的目标是构建API。输入将是键值对,我将循环通过jsonNode并逐个添加过滤器。这就是为什么我需要“过滤”API。它向我显示了不推荐的警告你能在你的问题中添加警告信息吗?在elasticsearch 1+版本中,顶级过滤器被弃用并重命名为post_过滤器。突破性更改:它的常见java弃用消息在“过滤”字上加上删除,就像我们看到的任何java代码一样。它要求我添加忽略警告标志。在上面的评论中,我编辑了我想要达到的目标,并制作了一个警告截图。
FilterBuilders.boolFilter()
.must(FilterBuilders.queryFilter(QueryBuilders.matchAllQuery()))
.filter(FilterBuilders.boolFilter()
.must(FilterBuilders.termFilter("id", 5))
.must(FilterBuilders.termFilter("city", "newyourk"))
);