결국 무엇이든 해내는 사람

ElasticSearch - Term Query란 [ 예제, 설명 ] 본문

두서없는 공부 노트/ElasticSearch

ElasticSearch - Term Query란 [ 예제, 설명 ]

kkm8257 2021. 12. 14. 11:35
반응형
-- 샘플

PUT my_index2
{
  "mappings": {
    "properties": {
      "message": {
        "type": "text",
        "analyzer": "snowball"
      }
    }
  }
}



PUT my_index2/_doc/1
{
  "message": "The quick brown fox jumps over the lazy dog"
}



-- term 쿼리는  match 쿼리와 유사하지만 , term 쿼리는 [ 입력한 검색어는 애널라이저를 적용하지 않고 입력된 검색어 그대로 일치하는 텀을 찾는다 ]
-- 따라서 jumps, jumping 과 같이 검색하면 결과가 나타나지 않고 jump로 검색해야 결과가 나타난다.
-- 이렇게 도큐먼트의 원문은 jumps 이지만 어떤 쿼리를 사용하느냐에 따라
-- 원문 그대로의 jumps 검색어를 넣어도 검색이 되지 않는 경우가 존재한다.


GET my_index2/_search
{
  "query": {
    "term": {
      "message": "jumps"
    }
  }
}

GET my_index2/_search
{
  "query": {
    "term": {
      "message": "jump"
    }
  }
}

-- [ 중요 ! ]

-- [ 텍스트 분석 ( Text Analysis ) ]는 검색에 사용되는 [ 역 인덱스 ]에만 관여를 한다.
-- 즉, 원본 데이터는 변하지 않으므로 쿼리 결과의 _source 항목에는 항상 [ 원본 ]데이터가 온다.

-- ES는 데이터를 실제로 검색에 사용되는 텀(Term)으로 분석과정을 거쳐서 저장하기 때문에, 검색시 대소문자, 단수나 복수, 원형 여부와 상관 없이 검색이 가능하다
-- 이러한 ES의 특징을 [ 풀 텍스트 검색 ( Full Text Search ) ]이라고하며 한국어로 [ 전문 검색 ]이라고 한다.



 
반응형
Comments