(ElasticSearch) 결과와 함께 반환하는 필드
검색 요청의 일부분을 차지하는 또 다른 요소는 엘라스틱 서치로 하여금 일치하는 개별 도큐먼트에서 반환할 필드 목록을 어떻게 지정하는가인데,
검색요청에 _source 구성 요소에서 이를 지정하면 된다.
요청에 _source를 지정하지 않는다면, 엘라스틱서치는 기본적으로 도큐먼트의 _source 전체를 반환하거나 저장된 _source가 없다면 일치하는 _id, _type, _index, _score와 같은 도큐먼트에 관한 메타데이터만 반환한다.
일치하는 각 그룹의 name과 date필드를 반환하는 쿼리는 다음과 같다.
GET get-together/_search
{
"query" : {
"match_all" : {}
},
"_source" : ["name", "date"]
}
검색요청에 _source 구성 요소에서 이를 지정하면 된다.
요청에 _source를 지정하지 않는다면, 엘라스틱서치는 기본적으로 도큐먼트의 _source 전체를 반환하거나 저장된 _source가 없다면 일치하는 _id, _type, _index, _score와 같은 도큐먼트에 관한 메타데이터만 반환한다.
일치하는 각 그룹의 name과 date필드를 반환하는 쿼리는 다음과 같다.
GET get-together/_search
{
"query" : {
"match_all" : {}
},
"_source" : ["name", "date"]
}
_SOURCE로 반환한 필드에서 와일드 카드
필드목록을 각각 지정해서 반환하는 것 외에도 와일드 카드를 사용할 수 있다.
예를들어, "name" , "nation"필드 둘다 반환하려면 "_source" : "na*"를 지정한다.
_source["name.*", "address.*"] 와 같이 와일드 카드 문자열을 배열처럼 사용해서 다수개 와일드 카드를 지정할 수 있다.
어떤 필드를 포함할지 지정할 수 있을 뿐만아니라 반환하지 않을 필드도 제외시킬 수 있다.
예)
GET get-together/_search
{
"query" : {
"match_all" : {}
},
"_source" : {
"include" :["location.*", "date"],
"exclude" : ["location.geolocation"]
}
}
댓글
댓글 쓰기