我正在使用Java API来实现以下输入,但是JAVA API / Elastic 1.4中不推荐使用FilterBuilders.filtered

filtered: {
    filters: {
        term: {
            "id": 5
        }
    },
    filters{
        {
            term: {
                "city": "newyork"
            }
        }
    }

我的目标是我想在MySQL中达到类似于WHERE的条件
WHERE id=1 and city="newyork"

在输出中,我想要点击列表,而不想要单独的存储桶。我是Elasticsearch和API的新手。

我如何实现已过滤(已弃用)之前执行的操作?

最佳答案

为时已晚,但可能可以帮助其他人。filtered查询已替换为Elasticsearch 2.0版中的bool查询。参见Elasticsearch reference

在Java中,您可能会遇到以下情况:

FilterBuilders.boolFilter()
                .must(FilterBuilders.queryFilter(QueryBuilders.matchAllQuery()))
                .filter(FilterBuilders.boolFilter()
                        .must(FilterBuilders.termFilter("id", 5))
                        .must(FilterBuilders.termFilter("city", "newyourk"))
                );

09-12 22:46