在java中使用elasticsearch函数创建json

时间:2016-04-30 18:27:42

标签: java json elasticsearch

我在理解如何在java中创建json对象时遇到问题。 我必须通过java从e​​lasticsearch获取某些数据,而且我还有一个json功能,但我不知道如何使用可用的函数制作这样的json。

是否可以使用QueryBuilder类及其功能执行此操作? 可能GET _search { "query": { "constant_score": { "filter": { "and": { "filters": [ {"term": {"_type":"budget"} }, {"term": {"_index":"dbs_project"} }, {"term": {"month":"x"} }, {"term": {"account_id":"y"} } ] } } } } } 有帮助吗?

这适用于chrome中的Sense插件:

final int FLIPS = 100;
int heads = 0;
int consecCount = 0;
for (int i = 1; i<= FLIPS; i++)
{
    if (Math.random() < 0.5) { 
         System.out.print("h"); 
         heads++;
    }
    else {               
         System.out.print("t");
         if (heads == 4 || heads == 5) { consecCount++; }
         heads = 0;
    }
}
System.out.print(consecCount);

2 个答案:

答案 0 :(得分:1)

QueryBuilder绝对适合你。要像使用API​​一样构建查询,您需要执行以下操作:

QueryBuilder query = QueryBuilders.constantScoreQuery(FilterBuilders.andFilter(FilterBuilders.termFilter("_type", "budget"),
                FilterBuilders.termFilter("_index", "dbs_project"), FilterBuilders.termFilter("month", "x"),
                FilterBuilders.termFilter("account_id", "y")));

您将使用SearchResponse执行查询并获取如下结果:

SearchResponse response = client.prepareSearch(index).setTypes(type)
                .setQuery(query).execute()
                .actionGet();

其中clientTransportClient的实例,而indextype对应于您要查询的弹性搜索索引和类型。

答案 1 :(得分:0)