【问题标题】:building kibana query in java to fetch records from elasticsearch在java中构建kibana查询以从elasticsearch中获取记录
【发布时间】:2018-11-04 11:57:36
【问题描述】:

我从 java 代码中的 elasticsearch 获取记录,能够使用 elasticsearch _id 获取记录。为此,我使用下面的 java 代码。

    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("_id", id); 
    searchSourceBuilder.query(matchQueryBuilder); 
    searchRequest.source(searchSourceBuilder);

来自 Kibana 的我正在使用以下查询从 elasticsearch 中获取记录,

GET /_search
{
    "query": {
        "query_string" : {
            "default_field" : "*",
            "query" : "M*"
        }
    }
}

现在,我想在 java 中构建这个查询。我不确定如何在 java 中构建这个查询。

【问题讨论】:

  • 在您建议使用带有消息正文的 GET 之前。在投入更多时间之前,请先阅读本文stackoverflow.com/questions/978061/http-get-with-request-body
  • 除此之外,body 是 JSON 结构。因此,您需要一些构造 JSON 字符串的机制(手动或序列化匹配的 DTO)和提供 HTTP 客户端以发出请求的库(Java 标准库、来自 Apache 的 httpclient、vert.x 等)。最后,这个任务实际上与 kibana 无关:无论您的请求是否从 Kibana 复制一个,您都在查询弹性

标签: java elasticsearch search kibana


【解决方案1】:

你可以这样做:

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
QueryStringQueryBuilder qsQueryBuilder = new QueryStringQueryBuilder("M*"); 
qsQueryBuilder.defaultField("*");
searchSourceBuilder.query(qsQueryBuilder); 
searchRequest.source(searchSourceBuilder);

【讨论】:

  • 再次感谢.. :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多