我在理解如何在java中创建json对象时遇到问题。 我必须通过java从elasticsearch获取某些数据,而且我还有一个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);
答案 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();
其中client
是TransportClient
的实例,而index
和type
对应于您要查询的弹性搜索索引和类型。
答案 1 :(得分:0)
您是否尝试过XContentBuilder
。
https://www.elastic.co/guide/en/elasticsearch/client/java-api/1.6/generate.html