2014-11-17 3 views
1

elasticsearch에서 id docId의 주어진 문서와 정확히 같은 필드가있는 문서를 검색하려고합니다. 예 : 사용자가 docId를 사용하여 API를 호출하면 반환 된 모든 문서가 docId의 일부 매개 변수를 충족하도록 문서를 필터링하고 싶습니다.Elasticsearch 다른 문서로 문서 찾기

POST similarTerms/_search 
{ 
    "fields": [ 
     "_id", "title" 
    ] , 
    "filter": { 
    "query": {"match": { 
     "title": doc[docId].title 
    }} 
    }, 
    "size": 30 

} 

은 내가 DOCID와 문서를 가져올 수 있습니다 후 나는 위의 쿼리를 준비 할 수 있습니다 알고 있지만, 어떻게 든 현재도 밀리 초를 네트워크 홉을 방지 할 수 있습니다

예를 들어 나는이 같은 Elasticsearch를 조회 할 수 있습니다 시간 개선은 내 앱에 큰 관심사입니다.

감사합니다.

+0

내가, 당신이 가지고 정확한 문제가 docId를 가져 와서 위에서 언급 한 쿼리에서 반복 할 때 사용할 수 있습니다. 위의 쿼리에서 docId를 가져 와서 사용하는 방법을 찾았습니까? 네가 그랬다면 나랑 같이 나눌 수있어? –

답변

0

이것은 "more like this"API에 대한 텍스트 북 시나리오입니다. the docs에서 견적 :

더이 (MLT) API와 같은 지정된 문서 "와 같은"있는 문서를 얻을 수 있습니다. 다음은 그 예이다 :

$ curl -XGET 'http://localhost:9200/twitter/tweet/1/_mlt?mlt_fields=tag,content&min_doc_freq=1'

API는 단순히 moreLikeThis 쿼리 검색 요청 (HTTP 매개 변수는 more_like_this 쿼리에 매개 변수와 일치를) 실행 결과. 즉, 요청 본문에 임의로 검색 API (aggs, from/to 및 so on)의 모든 요청 본문 옵션이 포함될 수 있습니다. 내부적으로이 API와 비슷한 기능은 more_like_this_field 쿼리의 부울 쿼리를 수행하는 것과 동일하며 에 지정된 쿼리는 mlt_fields로 지정됩니다. 당신은 단지 테스트를위한 하나 개의 문서로 (내가했던 것처럼)이 테스트하려는 경우

있는지 확인 당신은 또한 min_term_freq=0min_doc_freq=0 설정 : 방법에가있는 경우 GET /my_index/locations/1/_mlt?min_term_freq=0&min_doc_freq=0

+0

검색하는 문서에 따라 더 많이 필터링 할 수 있습니까? 전달되는 문서의 값과 정확히 일치하는 특정 필드의 값을 가진 문서 만 반환한다고 말할 수 있습니까? –

관련 문제