elasticsearch - 다중 문서 검색

10573 단어 elasticsearch

여러 문서 가져오기


Elasticsearch의 속도는 이미 매우 빠르지만, 심지어는 더 빠를 수도 있다.여러 개의 요청을 하나로 합쳐서 모든 요청에 걸리는 네트워크 시간 지연과 비용을 단독으로 처리하는 것을 피합니다.Elasticsearch에서 많은 문서를 검색해야 한다면, 멀티-get 또는 mget API를 사용하여 이 검색 요청을 하나의 요청에 넣으면 문서 요청보다 모든 문서를 더 빨리 검색할 수 있습니다.mget API는 docs 그룹을 매개 변수로 하고 각 요소는 문서를 검색해야 하는 메타데이터를 포함한다 _index, _type, _id.특정 필드를 하나 이상 검색하려면 _source 매개 변수를 사용하여 이 필드의 이름을 지정할 수 있습니다.
GET /_mget
{
   "docs" : [
      {
         "_index" : "website",
         "_type" :  "blog",
         "_id" :    2
      },
      {
         "_index" : "website",
         "_type" :  "pageviews",
         "_id" :    1,
         "_source": "views"
      }
   ]
}

이 응답체도 요청된 문서마다 대응하는 응답을 포함하고 요청된 순서와 같은 순서를 포함합니다.이 중 모든 응답은 단일 docs request 요청을 사용하여 얻은 응답체와 같습니다.
{
   "docs" : [
      {
         "_index" :   "website",
         "_id" :      "2",
         "_type" :    "blog",
         "found" :    true,
         "_source" : {
            "text" :  "This is a piece of cake...",
            "title" : "My first external blog entry"
         },
         "_version" : 10
      },
      {
         "_index" :   "website",
         "_id" :      "1",
         "_type" :    "pageviews",
         "found" :    true,
         "_version" : 2,
         "_source" : {
            "views" : 2
         }
      }
   ]
}

검색하려는 데이터가 동일 get 또는 동일 _index 에 있는 경우 URL에서 기본값 _type 또는 기본값 /_index 을 지정할 수 있습니다.
이 값을 덮어쓸 수 있는 단독 요청은 다음과 같습니다.
GET /website/blog/_mget
{
   "docs" : [
      { "_id" : 2 },
      { "_type" : "pageviews", "_id" :   1 }
   ]
}

사실상 모든 문서의 /_index/_type_index 이 같다면, 전체 _type 수조가 아니라 하나의 ids 수조만 전달할 수 있습니다.
GET /website/blog/_mget
{
   "ids" : [ "2", "1" ]
}

우리가 요청한 두 번째 문서는 존재하지 않습니다.유형은 docs 로 지정되지만 문서 IDblog의 유형은 1 입니다. 이 유형이 없으면 응답체에서 보고됩니다.
{
  "docs" : [
    {
      "_index" :   "website",
      "_type" :    "blog",
      "_id" :      "2",
      "_version" : 10,
      "found" :    true,
      "_source" : {
        "title":   "My first external blog entry",
        "text":    "This is a piece of cake..."
      }
    },
    {
      "_index" :   "website",
      "_type" :    "blog",
      "_id" :      "1",
      "found" :    false  (1)
    }
  ]
}
  • 문서를 찾을 수 없습니다.

  • 사실상 두 번째 문서를 찾을 수 없는 것은 첫 번째 문서를 검색하는 데 방해가 되지 않는다.각 문서는 개별적으로 읽어들이고 보고됩니다.
    Note
    문서를 찾을 수 없는 경우에도 위의 요청된 HTTP 상태 코드는 그대로 유지됩니다 pageviews.실제로 요청이 문서를 찾지 못하더라도 상태 코드는 200 입니다. 요청 자체가 성공적으로 실행되었기 때문입니다.어떤 문서 검색이 성공했거나 실패했는지 확인하기 위해서는 200 표시를 검사해야 합니다.

    좋은 웹페이지 즐겨찾기