2.X/1. Getting Started

1-01-07. Search Lite

drscg 2017. 10. 1. 12:16

GET is fairly simple—you get back the document that you ask for. Let’s try something a little more advanced, like a simple search!

GET 은 상당히 간단하다. request하면 document를 받을 수 있다. 간단한 검색처럼, 약간 더 고급스러운 뭔가를 해 보자.

The first search we will try is the simplest search possible. We will search for all employees, with this request:

첫 번째 검색은 가능한 가장 단순한 검색이다. 아래의 request를 가지고, 모든 직원을 검색할 것이다.

GET /megacorp/employee/_search

You can see that we’re still using index megacorp and type employee, but instead of specifying a document ID, we now use the _search endpoint. The response includes all three of our documents in the hits array. By default, a search will return the top 10 results.

우리는 여전히 index로 megacorp 를, type으로 employee 를 사용했으나, document ID를 지정하는 대신에, 마지막에 _search 를 시용했다. response는 hits 라는 배열 안에, 우리가 저장한 document 3개 모두를 포함하고 있다. 기본적으로, 검색은 상위 10개의 결과를 돌려준다.

{
   "took":      6,
   "timed_out": false,
   "_shards": { ... },
   "hits": {
      "total":      3,
      "max_score":  1,
      "hits": [
         {
            "_index":         "megacorp",
            "_type":          "employee",
            "_id":            "3",
            "_score":         1,
            "_source": {
               "first_name":  "Douglas",
               "last_name":   "Fir",
               "age":         35,
               "about":       "I like to build cabinets",
               "interests": [ "forestry" ]
            }
         },
         {
            "_index":         "megacorp",
            "_type":          "employee",
            "_id":            "1",
            "_score":         1,
            "_source": {
               "first_name":  "John",
               "last_name":   "Smith",
               "age":         25,
               "about":       "I love to go rock climbing",
               "interests": [ "sports", "music" ]
            }
         },
         {
            "_index":         "megacorp",
            "_type":          "employee",
            "_id":            "2",
            "_score":         1,
            "_source": {
               "first_name":  "Jane",
               "last_name":   "Smith",
               "age":         32,
               "about":       "I like to collect rock albums",
               "interests": [ "music" ]
            }
         }
      ]
   }
}
Note

The response not only tells us which documents matched, but also includes the whole document itself: all the information that we need in order to display the search results to the user.

response는 어떤 document가 일치하는 지를 알려줄 뿐만 아니라, 전체 document 자체를 포함하고 있다. 검색 결과를 표시하는 데 필요한 모든 정보를, 사용자에게 알려준다.

Next, let’s try searching for employees who have "Smith" in their last name. To do this, we’ll use a lightweight search method that is easy to use from the command line. This method is often referred to as query-string search, since we pass the search as a URL query-string parameter:

다음으로, last name이 "Smith" 인 직원을 검색해 보자. 이렇게 하려면, command line에서 사용하기 쉬운, 가벼운(lightweight) 검색 method를 사용해야 한다. 이 method는, 검색에 URL query-string 매개변수로 넘기기 때문에, query-string 검색으로 불려지기도 한다.

GET /megacorp/employee/_search?q=last_name:Smith

We use the same _search endpoint in the path, and we add the query itself in the q= parameter. The results that come back show all Smiths:

path의 마지막에 동일하게 _search 를 사용하고, q= 매개변수에 query 자체를 추가했다. response는 모든 smith를 반환한다.

{
   ...
   "hits": {
      "total":      2,
      "max_score":  0.30685282,
      "hits": [
         {
            ...
            "_source": {
               "first_name":  "John",
               "last_name":   "Smith",
               "age":         25,
               "about":       "I love to go rock climbing",
               "interests": [ "sports", "music" ]
            }
         },
         {
            ...
            "_source": {
               "first_name":  "Jane",
               "last_name":   "Smith",
               "age":         32,
               "about":       "I like to collect rock albums",
               "interests": [ "music" ]
            }
         }
      ]
   }
}


'2.X > 1. Getting Started' 카테고리의 다른 글

1-01-05. Indexing Employee Documents  (0) 2017.10.01
1-01-06. Retrieving a Document  (0) 2017.10.01
1-01-08. Search with Query DSL  (0) 2017.10.01
1-01-09. More-Complicated Searches  (0) 2017.10.01
1-01-10. Full-Text Search  (0) 2017.10.01