elasticsearch-sql-NestedTypes queries

NestedTypes queries

shiyuan edited this page on 5 Jan · 5 revisions
嵌套类型查询
shiyuan在1月5日·5版修改了此页


Nested Types
      Read about NestedTypes and what they are good for here
      From 1.4.7/2.0.2/2.1.0 version of elasticsearch-sql we have support for using nestedTypes.
      We are supporting queries and aggregations!
嵌套类型
      阅读关于NestedTypes以及它们在这里的优点
      从elasticsearch-sql的1.4.7 / 2.0.2 / 2.1.0版本我们支持使用nestedTypes。
      我们支持查询和聚合!


Query nested fields
      Simple Query (one field)
      In order to query a nested field all you need to do is add the "nested" function on the field.
      SELECT * FROM myIndex where nested(comments.message)='hello'
查询嵌套字段
      简单查询(一个字段)
      为了查询嵌套字段,你需要做的就是在字段上添加“嵌套”函数。
      SELECT * FROM myIndex where nested(comments.message)='hello'


      If you want to specify the path implicitly use:
      SELECT * FROM myIndex where nested(comments.message,'comments')='hello'
      如果您想要隐式指定路径,请使用:
      SELECT * FROM myIndex where nested(comments.message,'comments')='hello'


      Complex Query (more than one field)
      The syntax is simply nested('nested_path',where condition) for example:
      SELECT * FROM myIndex where nested('comments', comments.message = 'hello' and comments.likes > 3)
      复杂查询(多个字段)
      语法只是嵌套('nested_path',其中条件),例如:
      SELECT * FROM myIndex where nested('comments', comments.message = 'hello' and comments.likes > 3)

Aggregate on nested fields

       Simple term aggregation
       Wrap the string field with nested function
       SELECT count(*) as numOfComments FROM myIndex where nested(comments.age) > now-1d GROUP BY nested(comments.author)
在嵌套字段上聚合
       简单的术语聚合
        用嵌套函数包装字符串字段
       SELECT count(*) as numOfComments FROM myIndex where nested(comments.age) > now-1d GROUP BY nested(comments.author)

      Metric aggregations
      Just wrap the nested field with nested function
      SELECT sum(nested(comments.likes)) as sumOfInnerLikes FROM myIndex
      度量集合
      只需用嵌套函数包装嵌套字段
      SELECT sum(nested(comments.likes)) as sumOfInnerLikes FROM myIndex

     Buckets aggregation
      Add the 'nested' option like this: the value should be the nested path.
      select count(*) from index group by date_histogram('field'='message.date','interval'='1d','alias'='day', 'nested' ='message')
     水桶聚集
     像这样添加'嵌套'选项:值应该是嵌套路径。
     select count(*) from index group by date_histogram('field'='message.date','interval'='1d','alias'='day', 'nested' ='message')

Reverse nested aggregations
        Read about the need for reverse-nested aggregation here use it like you use nested aggregation
        Be sure you know where to jump
        examples:

        jump back to root
        SELECT sum(reverse_nested(someField)) alias FROM index GROUP BY nested(message.info)
        jump to another nested object which is inside your current nested path
        SELECT sum(reverse_nested(message.otherField,'message')) alias FROM index GROUP BY nested(message.info)
         jump to another nested object which is outside your current nested path (jumps back to root and do a nested agg)
        SELECT sum(reverse_nested(otherNested.otherField,'~otherNested')) alias FROM index GROUP BY nested(message.info)
        use it on buckets with the 'reverse_nested' on which you should add the path

       反向嵌套聚合
        阅读有关反向嵌套聚合的需求,请使用它,就像使用嵌套聚合一样
       确保你知道在哪里跳
       例子:

        跳回到根
        SELECT sum(reverse_nested(someField))别名FROM索引GROUP BY nested(message.info)
        跳转到您当前嵌套路径中的另一个嵌套对象
        SELECT sum(reverse_nested(message.otherField,'message'))别名FROM索引GROUP BY nested(message.info)
        跳到当前嵌套路径之外的另一个嵌套对象(跳回到根并执行嵌套agg)
        SELECT sum(reverse_nested(otherNested.otherField,'~otherNested')) alias FROM index GROUP BY nested(message.info)
        在“reverse_nested”上使用它,并在其上添加路径
        SELECT COUNT(*) FROM index GROUP BY nested(message.info),histogram('field'='comment.likes','reverse_nested'='~comment','interval'='2' , 'alias' = 'someAlias' )

翻译:https://github.com/NLPchina/elasticsearch-sql/wiki/NestedTypes-queries

posted @ 2018-06-22 22:13  舞羊  阅读(686)  评论(0编辑  收藏  举报