Elasticsearch之Nested Query

翻译 2015年04月16日 09:12:58

                                                     (这是一个小系列:请戳:ElasticsearchNested(嵌套)系列,查看其他nested相关文章)

Because nested objects are indexed as separate hidden documents, we can’t query them directly.Instead, 

we have to use the nested query or nested filter to access them:

   nested object作为一个独立隐藏文档单独建索引,因此,我们不能直接查询它们。取而代之,我们必须使用nested查询或者nested filter来接触它们:

curl -XGET 'localhost:9200/my_index' -d '
{
  "query":{
     "bool":{
	    "must":[
		   {"match":{"title":"eggs"}},
		   {
		     "nested":{
			    "path":"comments",
				"query":{
				   "bool":{
				      "must":[
					     {"match":{"comments.name":"john"}},
						 {"match":{"comments.age":28}}
					  ]
				   }
				}
			 }
		   }
		]
	 }
  }
}

   A nested field can contain other nested fields. Similarly, a nested query can contain other nested queries. 

The nesting hierarchy is applied as you would expect.

   一个nested字段可以包含其他的nested 字段。相似地,一个nested查询可以包含其他nested查询。只要你希望,你就可以使用嵌套层。

  Of course, a nested query could match several nested documents. Each matching nested document would have its own

relevance score, but these multiple scores need to be reduced to a single score that can be applied to the root document.

  当然,一个nested查询可以匹配多个nested文本。每个匹配的nested文本都有它自己相关评分,但是这些评分必须归为一个总分应用于根文本上。

  By default, it averages the scores of the matching nested documents. This can be controlled by setting the score_mode 

parameter to avg, max, sum, or even none (in which case the root document gets a constant score of 1.0).

  默认会平均所有匹配的nested文本的分数。当然,也可以通过设定score_modec参数为avg,max,sum,或者甚至为none(根文本获得一致评分1.0)

 

curl -XGET 'localhost:9200/my_index' -d '
{
  "query":{
     "bool":{
	    "must":[
		   {"match":{"title":"eggs"}},
		   {
		     "nested":{
			    "path":"comments",
				"score_mode":"max",
				"query":{
				   "bool":{
				      "must":[
					     {"match":{"comments.name":"john"}},
						 {"match":{"comments.age":28}}
					  ]
				   }
				}
			 }
		   }
		]
	 }
  }
}

   nested filter behaves much like a nested query, except that it doesn’t accept the score_mode parameter. It can

be used only in filter context—such as inside a filtered query—and it behaves like any other filter: 

it includes or excludes, but it doesn’t score.

一个nested过滤行为和一个nested 查询非常像,除了它不接受score_mode。它只会用在过滤场景中——比如一个过滤查询中——它的行为同样类似其他过滤:

要么包括,要么不包括,不会评分。


原文:http://www.elastic.co/guide/en/elasticsearch/guide/current/nested-query.html

elasticsearch__4__java操作之QueryBuilders构建搜索Query

内容涉及代码GitHub地址:https://github.com/xiaohulu/util_xiaohulu/tree/master/src/com/elasticsearch 官方API:h...
  • u011278496
  • u011278496
  • 2014年07月16日 14:33
  • 25969

Elasticsearch之Nested(嵌套)系列

1.Elasticsearch之Nested Object 2.Elasticsearch之Nested Object Mapping 3.Elasticsearch之Nested ...
  • Allenalex
  • Allenalex
  • 2015年04月14日 16:54
  • 11145

Elasticsearch之Nested Aggregation

(这是一个小系列:请戳:Elasticsearch之Nested(嵌套)系列,查看其他nested相关文章)              In the same way as we need to u...
  • Allenalex
  • Allenalex
  • 2015年04月16日 20:52
  • 5449

Elasticsearch之Nested Sorting

(这是一个小系列:请戳:Elasticsearch之Nested(嵌套)系列,查看其他nested相关文章)          It is possible to sort by the...
  • Allenalex
  • Allenalex
  • 2015年04月16日 17:42
  • 2463

Elasticsearch嵌套式对象Nested分析

nested结构是Elasticsearch提供关系存储的一种特殊的结构,是NOSQL的一种高级特性,在传统的关系型sql中,很难做到一行记录中存储某个实体以及附属的内容,比如某个用户下评论数据,或某...
  • u012332735
  • u012332735
  • 2017年03月15日 14:13
  • 7671

对Relationship Queries 的理解(nested query)

Relationship Queries 在关系查询中,存在一对多和多对一的关系。因为就会出现两种查询情况。 在解释查询关系之前,需要理解一下Relationship Name,如文档中con...
  • gaofly89
  • gaofly89
  • 2015年04月03日 15:06
  • 520

ElasticSearch – nested mappings and filters

还有一个情况下,我们需要帮助ElasticSearch了解我们的数据结构,以便能够充分进行查询 - 复杂对象数组的时候。 按理说的ElasticSearch的最佳功能之一是,它使我们能够索引...
  • zxjiayou1314
  • zxjiayou1314
  • 2016年11月18日 16:13
  • 309

elasticsearch基本操作之--使用QueryBuilders进行查询

/** 系统环境: vm12 下的centos 7.2 当前安装版本: elasticsearch-2.4.0.tar.gz */ QueryBuilder 是es中提供的一个查询接口, 可...
  • u010515155
  • u010515155
  • 2018年01月05日 18:20
  • 30

Elasticsearch之Nested Object

Given the fact that creating, deleting, and updating a single document in Elasticsearch is atomic, i...
  • Allenalex
  • Allenalex
  • 2015年04月14日 16:46
  • 10602

[Elasticsearch] 控制相关度 (五) - function_score查询及field_value_factor,boost_mode,max_mode参数

本章翻译自Elasticsearch官方指南的Controlling Relevance一章。 function_score查询 function_score查询是处理...
  • dm_vincent
  • dm_vincent
  • 2014年12月27日 23:20
  • 21194
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Elasticsearch之Nested Query
举报原因:
原因补充:

(最多只允许输入30个字)