【问题标题】:Construct QueryBuilder from JSON DSL when using Java API in ElasticSearch?在 ElasticSearch 中使用 Java API 时从 JSON DSL 构造 QueryBuilder?
【发布时间】:2021-07-07 12:35:55
【问题描述】:

我有一个 JSON 格式的弹性搜索查询(如下所述),我正在从数据库中读取它,我必须在 Java spring 程序中更新这个查询。如何将 JSON 查询对象转换为 QueryBuilder 对象,以便在执行它之前对其进行操作以获取命中?

{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "after.values": {
              "query": "Beach Soccer",
              "operator": "and"
            }
          }
        },
        {
          "match": {
            "after.values": {
              "query": "Football",
              "operator": "and"
            }
          }
        }
      ],
      "should": [
        {
          "match": {
            "after.values": "Australian Open"
          }
        },
        {
          "match": {
            "after.values": "Golf Austra"
          }
        },
        {
          "match": {
            "after.values": "Australasia"
          }
        }
      ]
    }
  }
}

How to construct QueryBuilder from JSON DSL when using Java API in ElasticSearch?一样的问题

但是选择作为答案的解决方案不再有效。 我在 2021 年遇到了与 @armstrongya 完全相同的问题,并且正在做 QueryBuilders.wrapperQuery(jsonQueryString); 不是给我剪的。

这就是我得到的:

{ “包装”:{ “查询”: “eyJib29sIjp7Im11c3Rfbm90IjpbeyJtYXRjaCI6eyJhZnRlci50aXRsZSI6eyJxdWVyeSI6IldpbWJlbGRvbiIsIm9wZXJhdG9yIjoiYW5kIn19fSx7Im1hdGNoIjp7ImZpZWxkLmRlc2NyaXB0aW9uIjp7InF1ZXJ5IjoiV2ltYmVsZG9uIiwib3BlcmF0b3IiOiJhbmQifX19LHsibWF0Y2giOnsiYWZ0ZXIudGl0bGUiOnsicXVlcnkiOiJXVEEiLCJvcGVyYXRvciI6ImFuZCJ9fX0seyJtYXRjaCI6eyJmaWVsZC5kZXNjcmlwdGlvbiI6eyJxdWVyeSI6IldUQSIsIm9wZXJhdG9yIjoiYW5kIn19fV19fQ ==”} P>

【问题讨论】:

    标签: java json elasticsearch


    【解决方案1】:

    我回答了我自己的问题:这有帮助:Elasticsearch Jest client add condition to json query

    主要是,我刚刚意识到我一直都需要正确的查询,它只是以 base64 编码进行解码。 (eyJib29sIjp7Im11c3Rfbm90IjpbeyJtYXRjaCI6eyJhZnRlci50aXRsZSI6eyJxdWVyeSI6IldpbWJlbGRvbiIsIm9wZXJhdG9yIjoiYW5kIn19fSx7Im1hdGNoIjp7ImZpZWxkLmRlc2NyaXB0aW9uIjp7InF1ZXJ5IjoiV2ltYmVsZG9uIiwib3BlcmF0b3IiOiJhbmQifX19LHsibWF0Y2giOnsiYWZ0ZXIudGl0bGUiOnsicXVlcnkiOiJXVEEiLCJvcGVyYXRvciI6ImFuZCJ9fX0seyJtYXRjaCI6eyJmaWVsZC5kZXNjcmlwdGlvbiI6eyJxdWVyeSI6IldUQSIsIm9wZXJhdG9yIjoiYW5kIn19fV19fQ ==) P>

    我使用在线 base64 解码器来显示查询的“漂亮”解码版本。

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-10
      • 2015-10-25
      • 1970-01-01
      相关资源
      最近更新 更多