2013-07-26 2 views
1

저는 ElasticSearch를 처음 접했고, 특정 사용자가 만든 저장된 데이터를 검색하는 간단한 쿼리를 작성했습니다.탄성 검색 쿼리가 백 id를 제공하지 않습니다. (다른 모든 데이터)

쿼리에서 올바른 결과를 얻었지만 문제는 id 및/또는 _id 필드가 결과에서 누락되었습니다. 다른 모든 필드는 perferctly 검색됩니다, 조건도 괜찮습니다.

결과에 ˙id˙ 필드를 포함시키는 방법을 제안 해 주실 수 있습니까? 여기 쿼리입니다 :

{ 
    'filter': { 
    'limit': {'value': 100} 
    }, 
    'query': { 
    'bool': { 
     'should': [ 
     {'term': {'user': 'acct:[email protected]:5000'}} 
     ], 
     'minimum_number_should_match': 1 
    } 
    } 
} 

이 (내가 쿼리를 간단하게 작성할 수 있습니다 알고 있지만 다른 용어가 추가됩니다 설계) 사용자 필드의 정의는 간단 너무 :

'user': {'type': 'string', 'index': 'not_analyzed'} 

도움을 주셔서 감사합니다. 나는 이것이 신참 질문일지도 모른다는 것을 알고 있지만, 나는 그것을 올바르게 이해할 수 없다.

+1

'id'는 항상 결과에 있어야합니다. 이 쿼리를 실행할 때 얻은 응답을 사용할 수 있습니까? – mguillermin

+0

'_id'는 다른 필드와 마찬가지로 문서 본문의 일부가 아닙니다. 문서에서'_id'를 복제하지 않으면, 결과의'_source' 부분에서 그것을 볼 수 없습니다. – ramseykhalaf

+0

당신은'_id'를 리턴 할 것이지만'_source'에없는 다른 필드와 "같은 위치에"있는 것은 아닙니다. – ramseykhalaf

답변

0

_id은 다른 필드와 마찬가지로 문서 본문의 일부가 아닙니다. 문서에 _id을 복제하지 않으면 결과의 일부인 _source에 표시되지 않습니다.

_id이 반환되지만 _source에없는 다른 필드와 동일한 위치에 있지는 않으며 한 단계 위입니다.

관련 문제