V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yupnano
V2EX  ›  Elasticsearch

受够了 es 的 curl 搜索语法

  •  2
     
  •   yupnano · 2021-02-07 15:44:59 +08:00 · 5659 次点击
    这是一个创建于 1416 天前的主题,其中的信息可能已经有所发展或是发生改变。

    真的是脑残,怎么会设计出 json 结构这种查询方式,简直是反人类,几分钟时间根本写不出一个能用的查询,想摔键盘,什么垃圾玩意。

    当然,最新的 es 版本据说支持 sql 语句了,但是公司用的还是 v5 、v6 呀。蛋疼!

    45 条回复    2023-07-21 17:28:29 +08:00
    chendy
        1
    chendy  
       2021-02-07 15:49:42 +08:00   ❤️ 3
    curl:???
    键盘:???
    几分钟写不出来纯属不够熟练,写不出来复制粘贴改啊……
    learningman
        2
    learningman  
       2021-02-07 15:50:34 +08:00   ❤️ 1
    拉不出屎怪地球🌏
    gtexpanse
        3
    gtexpanse  
       2021-02-07 15:54:33 +08:00
    试试在 Kibana 里面写,有自动提示
    achenme
        4
    achenme  
       2021-02-07 15:54:40 +08:00
    json 查询格式巨清晰啊。。
    yupnano
        5
    yupnano  
    OP
       2021-02-07 15:56:53 +08:00
    @learningman 是啊,地球引力太小了,1 个 g 怎么行,起码得 256 g 才够用嘛
    laragh
        6
    laragh  
       2021-02-07 15:56:58 +08:00
    他可能说的是各种嵌套。。。可以试试 kibana 搜索,粘贴搜索语句就不用自己一点点写了
    zhuangzhuang1988
        7
    zhuangzhuang1988  
       2021-02-07 15:57:08 +08:00
    用 Kibana console 吧, 带有作色和少量的自动补全
    官方用 json 也是为了后端好解析.
    或者用 client 写, client 一般都会包装成 api 好很多
    jingkaimori
        8
    jingkaimori  
       2021-02-07 15:57:18 +08:00
    不开补全,不垃圾的语言都得变成垃圾,垃圾的语言瞬间就好用了。
    wolfie
        9
    wolfie  
       2021-02-07 16:00:02 +08:00
    用其他语言的 sdk 拼条件然后 toString 。
    yupnano
        10
    yupnano  
    OP
       2021-02-07 16:02:05 +08:00
    @chendy 当然是复制粘贴改,每次从头撸一个语句还不得折腾死人。
    然而复制粘贴基础上改动也是极易出错的,json 用来读还可以,要手写还是算了吧
    yupnano
        11
    yupnano  
    OP
       2021-02-07 16:03:33 +08:00
    @achenme 巨清晰是从阅读的角度说的,嵌套多的话,写起来也是让人崩溃的
    misaka19000
        12
    misaka19000  
       2021-02-07 16:09:00 +08:00
    JSON 比 lj SQL 好用多了
    wakzz
        13
    wakzz  
       2021-02-07 16:10:36 +08:00
    @misaka19000 +1,真心觉得 ES 的 DSL 语法用起来比 SQL 语法舒服
    sujin190
        14
    sujin190  
       2021-02-07 16:17:23 +08:00
    其实主要是没有一个文档清晰的说清楚各查询指令间啥关系,很多时候简直莫名奇妙,分不清该怎么组合,sql 自身就清晰很多,从 select 到 from 、where 、group 、order,不用看文档看字面意思也能猜个八九不离十,es 这个就简直了

    话说楼上各位大神,既然如此有啥好的文档啥的也分享分享呗 @all
    tairan2006
        15
    tairan2006  
       2021-02-07 16:20:57 +08:00 via Android
    你本地装个 es7,然后用
    tairan2006
        16
    tairan2006  
       2021-02-07 16:21:31 +08:00 via Android
    _sql/translate 可以把 sql 转成 json
    javapythongo
        17
    javapythongo  
       2021-02-07 16:26:26 +08:00
    @sujin190 官方的文档我觉得写得非常好
    smart9527
        18
    smart9527  
       2021-02-07 16:28:07 +08:00
    受够了 sql 的查询语法
    superrichman
        19
    superrichman  
       2021-02-07 16:30:51 +08:00 via iPhone
    自己看用 kibana,写程序用封装好的库比如 elasticsearch-dsl

    之前是自己拼 dsl,过程很痛苦,elasticsearch 的文档写的太烂了,简直堪比阿里的文档🐶
    est
        20
    est  
       2021-02-07 16:36:53 +08:00
    json 模拟语法树拼凑查询语句。。。mongodb 含泪发来贺电。。。。。。

    其实 curl 光查询倒还好,那个 aggs 语法才是反人类的。。。特别是嵌套层级多了之后。。查起来蛋痛,解析返回结果更蛋痛。

    composite 也是半残废。唉。。
    uselessVisitor
        21
    uselessVisitor  
       2021-02-07 16:41:34 +08:00
    确实恶心。。
    rqrq
        22
    rqrq  
       2021-02-07 16:42:11 +08:00
    难道每次都是手写生成 json ?花点时间封装一个 query class 不就可以解决了
    yupnano
        23
    yupnano  
    OP
       2021-02-07 16:46:09 +08:00   ❤️ 1
    我试试 kibnana 吧,之前都是在石墨文档里复制粘贴然后修改的。
    这里不得不说石墨文档,简直是一坨屎,代码块编辑各种 bug,一个半成品也能拿出来卖钱。
    yupnano
        24
    yupnano  
    OP
       2021-02-07 16:50:06 +08:00
    @misaka19000 @wakzz @smart9527 几位大哥是认真的吗,json 会比 sql 好用? sql 不是基本技能吗。
    或者是我错过了某个 json 神器,可否介绍一二?
    mostkia
        25
    mostkia  
       2021-02-07 16:52:27 +08:00
    对于初始语言为 js 的程序猿,json 其实友好度还可以。我在一些轻量化后台需求中可能会直接使用 sqlite 或者 json 文件来存放一些参数和配置,个人感觉 json 挺好用的,格式很清晰。
    yazinnnn
        26
    yazinnnn  
       2021-02-07 16:58:48 +08:00
    不用 kibana 确实蛋疼,其实你可以尝试写个把 sql 翻译成 json 的库,或者自定义 sdl 翻译成 json 的库
    qW7bo2FbzbC0
        27
    qW7bo2FbzbC0  
       2021-02-07 17:19:07 +08:00
    所以,大家还是更喜欢 SQL 的简洁明了
    Morriaty
        28
    Morriaty  
       2021-02-07 17:29:42 +08:00
    果然不同的人感官不一样,ES 的文档我觉得是所有开源组件中第二好的文档
    AS4694lAS4808
        29
    AS4694lAS4808  
       2021-02-07 17:43:33 +08:00
    @tairan2006 +1 转换确实比手写舒服
    SjwNo1
        30
    SjwNo1  
       2021-02-07 18:45:59 +08:00
    难道没有插件帮助你转换成 DSL 吗?应该有吧,应该不止你有这样的困惑吧
    zypy333
        31
    zypy333  
       2021-02-07 19:06:59 +08:00
    @Morriaty 第一好是啥
    dryyun
        32
    dryyun  
       2021-02-07 22:19:24 +08:00
    谁的锅?
    es ? curl ? json ?
    matrix67
        33
    matrix67  
       2021-02-07 22:34:50 +08:00
    @Morriaty 第一好是啥 我也想知道
    matrix67
        34
    matrix67  
       2021-02-07 22:42:22 +08:00
    @matrix67 第一好我觉得是 vim,vim 的文档很好
    Morriaty
        35
    Morriaty  
       2021-02-08 10:03:37 +08:00
    @zypy333 @matrix67 第一 django 的文档,纯个人感官
    no1xsyzy
        36
    no1xsyzy  
       2021-02-08 11:26:49 +08:00
    @Morriaty 你醒拉,ES 不开源了。

    第一好的文档当然是元始 Lisp,只有七个原语,文档非常简洁且完整。
    unbright
        37
    unbright  
       2021-02-08 14:30:39 +08:00
    http://www.ischoolbar.com/EsParser/
    试试这个,可以把 sql 转 json
    wakzz
        38
    wakzz  
       2021-02-08 16:13:39 +08:00
    @yupnano 简单查询确实 SQL 看上去比 ES 的 DSL 语法精简,但 ES 更多场景是各种复杂的查询和多维度的统计功能,DSL 的 JSON 格式层级分明,同样复杂的逻辑用 SQL 写,真的惨不忍睹
    jingkaimori
        39
    jingkaimori  
       2021-02-08 16:21:02 +08:00
    @no1xsyzy Lisp?为什么不用 json ?凭什么你圆括号语法树就比花括号语法树高一等?🐶
    no1xsyzy
        40
    no1xsyzy  
       2021-02-08 18:45:49 +08:00
    @jingkaimori 七原语图灵完备!你 JSON 图灵完备吗?🐶
    java8
        41
    java8  
       2021-02-09 14:11:57 +08:00
    暴躁老哥, 在线摔键盘
    bfpiaoran
        42
    bfpiaoran  
       2021-02-09 14:50:52 +08:00
    不是已经支持 sql 了么
    bfpiaoran
        43
    bfpiaoran  
       2021-02-09 14:51:14 +08:00
    啊 没看到后面~~~
    tvboxme
        44
    tvboxme  
       2021-02-09 16:46:23 +08:00
    JSON 查询方式是有优势的,用 kibana 吧,有补全,好用。
    yupnano
        45
    yupnano  
    OP
       2023-07-21 17:28:29 +08:00
    kibana 自动补全真实太香了,之前没人指点不知道
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1543 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:59 · PVG 00:59 · LAX 08:59 · JFK 11:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.