【问题标题】:Kibana query language to java elasticsearch queryKibana 查询语言到 java elasticsearch 查询
【发布时间】:2020-03-02 00:14:45
【问题描述】:

有没有一种从 kibana 查询语言字符串到 java elasticsearch 查询的简单方法?

编辑: 例如 kibana 查询语言字符串: foo:bar or test:123

可以用java解决 BoolQueryBuilder queryBuilder1 = QueryBuilders.boolQuery().should(matchQuery("foo","bar")).minimumShouldMatch(1); BoolQueryBuilder queryBuilder2 = QueryBuilders.boolQuery().should(matchQuery("test,"123")).minimumShouldMatch(1); BoolQueryBuilder queryBuilder1 = QueryBuilders.boolQuery().filter(List of queryBuilder1 and 2)

【问题讨论】:

    标签: java elasticsearch kibana


    【解决方案1】:

    是的,有:

    1. 打开 Kibana 并执行您的 KQL
    2. 点击查询输入字段上方的Inspect
    3. 在右侧出现的滑块中,点击请求
    4. 在显示的 JSON 中找到“查询”部分

    【讨论】:

    • 感谢您对 kibana ui 功能的详细解释,以查看针对弹性 api 的请求。我认为这对不了解的人很有帮助。但我的问题是针对 java 查询。所以我需要将cloud.maschine.type:"n1-standard-32" 翻译成QueryBuilders.boolQuery.should("n1-standard-32").minimumShouldMatch(1); 的东西你知道我的意思吗?
    • 明白你的意思。 High Level Rest Client 基于弹性 Query-DLS,而 KQL 只是 kibana 的东西。我会尝试在第一步中将 KQL 转换为 Query-DSL - 我找不到用于此的 java 库,但如果您管理它,您将拥有一个 Query-DSL JSON。在下一步中,使用 XContent API 解析 JSON(请参阅 XContentParser、XContentFactory 类),最后,使用 SearchSourceBuilder 类通过 XContent 获取 SearchQuery。我很好奇这个问题背后的用例是什么?也许我们可以找到另一种方法?
    • 是的,也许我们可以找到另一种方法,因为一般的总体问题是,如果我可以将 Kibana UI 搜索栏集成到我的应用程序中。因此,我在第一步尝试将 KQL 转换为 java。然后我会尝试从 ui 等管理自动完成。是的,我可以尝试对 Kibana github 项目进行逆向工程,但我认为这有点过头了。
    猜你喜欢
    • 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
    相关资源
    最近更新 更多