✅ Elasitcsearch의 검색 기능 테스트해보기

  1. 인덱스 생성하기

    PUT /products
    

    참고) 이렇게 배운 기능을 계속해서 써먹어봐야 Elasticsearch에 금방 익숙해질 수 있다.

  2. 매핑 정의하기

    PUT /products/_mappings
    {
      "properties": {
        "name": { 
          "type": "text"
        }
      }
    }
    

    **참고) 매핑(mapping)**의 타입이나 특징에 대해서는 나중에 다시 한 번 자세히 다룰 예정이다.

  3. 도큐먼트 삽입

    # 도큐먼트 삽입
    # POST /{인덱스명}/_doc
    POST /products/_doc
    {
      "name": "Apple 2025 맥북 에어 13 M4 10코어"
    }
    
  4. 도큐먼트가 잘 저장됐는지 확인하기

    # 모든 도큐먼트 조회
    GET /products/_search
    
  5. 도큐먼트 검색해보기

    # 특정 조건을 만족하는 도큐먼트 조회
    # (name 필드에 '맥북 에어 13 M4'가 포함된 도큐먼트 조회)
    GET /products/_search
    {
      "query": {
        "match": {
          "name": "맥북 에어 13 M4" 
        }
      }
    }
    

    참고) 특정 조건을 만족하는 도큐먼트를 조회할 때 사용하는 match 쿼리는 정말 많이 사용되니 까먹지 않게 따로 정리해두자.

    응답값

    {
      "took": 4,
      "timed_out": false,
      "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
      },
      "hits": {
        "total": {
          "value": 1,
          "relation": "eq"
        },
        "max_score": 1.1507283,
    
        # 조건을 만족하는 도큐먼트
        "hits": [
          {
            # _index : 인덱스명
            **"_index": "products",**
            
            # 데이터를 저장하면서 자동으로 생성된 '랜덤 고유 ID'
            **"_id": "hU2MZ5YB5XfvBpblxof6",**
            
            "_score": 1.1507283,
            
            # _source : 저장한 데이터가 들어있는 필드
            **"_source": {
              "name": "Apple 2025 맥북 에어 13 M4 10코어"
            }**
          }
        ]
      }
    }
    

    참고) 지금으로써는 주석으로 표시한 필드의 의미만 해석할 수 있으면 된다. (파레토의 법칙)

  6. 단어의 순서를 바꿔서 검색해보기

    GET /products/_search
    {
      "query": {
        "match": {
          "name": "맥북 13 에어 M4"
        }
      }
    }
    

응답값

{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1.1507283,
    "hits": [
      {
        "_index": "products",
        "_id": "hU2MZ5YB5XfvBpblxof6",
        "_score": 1.1507283,
        "_source": {
          "name": "Apple 2025 맥북 에어 13 M4 10코어"
        }
      }
    ]
  }
}

분명 단어의 순서를 바꿔서 검색했는데도 Elasticsearch가 찰떡같이 도큐먼트를 조회했다.

<aside> 👨🏻‍🏫

다음 강의에서는 어떻게 Elasticsearch가 단어의 순서를 바꿨는데도 도튜먼트를 조회해올 수 있는 지에 대한 원리를 알아보자.

</aside>