ES 查询条件构造的一个问题

2020-04-23 18:50:33 +08:00
 terry0314

最近刚开始看 ES 相关的文档,有一个问题,这样的一段查询应该怎么用 Java API 实现呢?

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "id": "100"
          }
        },
        {
          "match": {
            "city": "bejing"
          }
        },
        {
          "term": {
            "date": "2020-04-22"
          }
        }
      ]
    }
  }
}

看了官方文档,可以用 QueryBuilders.matchQuery() 或者 QueryBuilders.termQuery() 来实现单个字段的匹配,但像上面这样在一个查询中,同时用 match 和 term 匹配不同字段,用 QueryBuilder 应该怎么实现呢?

948 次点击
所在节点    问与答
4 条回复
itskingname
2020-04-23 18:53:30 +08:00
唉,用 Python 多省事。非得有 Java
terry0314
2020-04-23 19:07:51 +08:00
@itskingname 我自己写东西肯定用 Py,但项目用 Java 写的没法呀🤣
damngood
2020-04-23 19:37:34 +08:00
用第三方 client lib 来实现
开启 trace 会打印 query dsl
自己手写太太太麻烦了
damngood
2020-04-23 19:39:10 +08:00
噢 sorry 没看到下面的更具体的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/665435

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX