Elasticsearch关于nested结构query和filter查询语法

什么是nested结构, 简单可以理解为是嵌套数据类型… 嵌套类型需要实现定义好mapping. 

需要注意的是,默认的嵌套形式的kv并不是nested类型的,要提前定义mapping .


文章有些地方写的不严谨,后期会更新, 请查看原文链接   http://xiaorui.cc/?p=2376

下面是一个nested的数据样例, 我们首先手动指定mappings nested


然后我们开始扔数据


然后进行查询,我们先用传统的方式查询. 我们查询的目的是匹配liufengyun,但是他的返回结果肯定不是我们所需要的.


那对于nested该如何查询数据,需要在query filter里,指定path。

注意其中几个参数:

1 path 定义了嵌套的对象,可以是列表

2 score_mode 定义里嵌套对象计算的分数与当前查询分数的处理方式,有avg,sum,max,min以及none。none就是不做任何处理,其他的看字面意思就好理解。

3 query/filter是查询的方式,内部定义了针对嵌套对象的查询,注意内部的查询一定要是用全路径, 比如 user.first user.last .


对于elasticsearch nested就说这么多了….


对Golang感兴趣的朋友可以加群: 278517979 !!!
另外如果大家觉得文章对你有些作用! 如果想赏钱,可以用微信扫描下面的二维码, 感谢!
另外再次标注博客原地址  xiaorui.cc

1 Response

  1. kibana 2016年5月31日 / 上午11:04

    使用kibana绘制图表的时候,kibana支持nested的类型吗?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">