我用java查询弹性搜索我想把我的查询数据导出到csv文件我为此感到头疼。。。。请任何人能帮我处理这段代码吗?。。下面是我的java查询代码
try {
RangeQueryBuilder rangeQ = QueryBuilders
.rangeQuery("@timestamp")
.gte("1663632000000")
.lte("1663804799000")
.format("epoch_millis");
TermsAggregationBuilder termsAggregation = AggregationBuilders
.terms("term_by_client_id")
.field("labels.client_id")
.size(100000)
.minDocCount(1);
termsAggregation
.subAggregation(
AggregationBuilders
.sum("sum_by")
.field("labels.row_count")
);
termsAggregation
.subAggregation(
AggregationBuilders
.terms("term_By_job")
.field("labels.job_id")
);
SearchRequest searchRequest = new SearchRequest();
searchRequest.indices("*itm*");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(rangeQ);
searchSourceBuilder.aggregation(termsAggregation);
// searchSourceBuilder.size(100000);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
System.out.println(searchResponse);
Aggregations aggregations = searchResponse.getAggregations();
Map<String, Aggregation> aggregationMap = aggregations.asMap();
for (Map.Entry<String, Aggregation> each : aggregationMap.entrySet()){
System.out.println((each.getValue()));
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
查询的输出是这样的
"桶":[{"key":"1741433 "," doc_count":1},{"key":"1741435 "," doc_count":1},{"key":"1741436 "," doc_count":1},{"key":"1741440 "," doc_count":1},{"key":"1741441 "," doc_count":1},{"key":"1741442 "," doc_count "
请在这里帮我处理这个代码,我将不胜感激。谢谢。
这不完全是你想要的,但我想这可能对你有帮助,所以我建议你这么做。
您可以像这样使用这个轻量级工具
# Backup the results of a query to a file
elasticdump \
--input=http://production.es.com:9200/my_index \
--output=query.json \
--searchBody="{\"query\":{\"term\":{\"username\": \"admin\"}}}"
然后使用Java lib或任何适合您的在线工具将json转换成csv。
我正在LDAP服务器上工作。它有弹性搜索。我必须用一些Javascript代码(JSON格式)发送查询。 这是我的查询: 我试图打印所有结果,其中“server”=“server\u name”(该字段是server:server\u name…)。我认为关于弹性搜索的文档太小了。我找到了一些文档,但都是一样的,对新用户没有帮助。这个例子太简单了。 此查询返回所有结果,包括任何筛选器。 Ps:这就
我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢
我需要在elasticsearch中编写搜索查询,数据如下 场景:-用户想要搜索与p2相关的人,并使用每个相关的人找到他们与谁相关 1.首先找到与p2答案=p1相关的人。现在找到与p1答案=p3相关的人。(目前的要求是只进行1级),因此不需要找到与p3相关的人。最终结果应该是p2,p1,p3。 正常场景的我们将编写一个嵌套sql来获得结果。我们如何使用弹性查询语言一次性实现这一点
我在术语查询中要求弹性搜索中的嵌套字段,其中嵌套字段值应与术语查询中提供的值的数量完全匹配。例如,考虑下面的查询,在这里我们对名为类型的嵌套字段进行查询。 GET资产/_search 索引映射 样本文件: 上述查询应返回字段类型正好有2个值的文档,即“VOD”
我正在开发JSF项目并将Elastic Search与本机JavaApi(不是Jest)一起使用。我在elasticsearch索引映射中为高级全文搜索定义了分析器和nGram过滤器。如何使用java api进行此查询定义?
我刚加入弹性搜索公司。而不知道如何在JSON请求中对索引和an类型发出正确的请求?(所以我不想像localhost:9200/myindex/mytype/_search那样在URL中使用索引和类型,而是向localhost:9200/_search发出JSON请求) 我试过这样的东西。但我得到的结果是'AAA'索引而不是'BBB'索引。如何只从bbb索引得到结果或者根本没有结果?