Elasticsearch의 Nested Query

2983 단어 elasticsearch
(이것은 작은 시리즈입니다. 스탬프: Elasticsearch의 Nested (끼워넣기) 시리즈, 다른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:
nestedobject는 독립적으로 문서를 숨기고 색인을 만들 수 있기 때문에 직접 조회할 수 없습니다.대신 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}}
					  ]
				   }
				}
			 }
		   }
		]
	 }
  }
}

   A 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

좋은 웹페이지 즐겨찾기