term query

-> 제공된 필드에 정확한 용어가 포함 된 문서를 반환합니다.

-> 검색어라는 용어를 사용하여 가격, 제품 ID 또는 사용자 이름과 같은 정확한 값을 기반으로 문서를 찾을 수 있습니다.

 

핵심은 정확하게 해당 field의 value값과 일치하여야 hit될 수 있다로 결론 지을 수 있다.

============================================================================

그럼 간단한 예제로 확인해보자

++++++++++++++++++++++++++++++++++++++++++++

sample 데이터

POST sample_index/_doc
{
  "col1": "삼성전자"
}

POST sample_index/_doc
{
  "col1": "LG전자"
}

++++++++++++++++++++++++++++++++++++++++++++

다음과 같이 쿼리를 날려보자

GET sample_index/_search
{
  "query": {
    "term": {
      "col1.keyword": {
        "value": "LG"
      }
    }
  }
}

 

결과는 일치하는 document가 없다고 나온다.

 

다음과 같이 쿼리를 날리면

GET sample_index/_search
{
  "query": {
    "term": {
      "col1.keyword": {
        "value": "LG전자"
      }
    }
  }
}

hti된 document가 결과로 나온다.

 

============================================================================

참고 Elasticsearch에서 인덱스 매핑없이 데이터를 insert하여 인덱스를 생성할 경우 string에 해당하는 column은 자동적으로 text와 keyword 타입으로 동시 매핑이 잡히게 된다.

============================================================================

 

 

'ELK > elasticsearch' 카테고리의 다른 글

elasticsearch match-query  (0) 2020.12.23
3노드 클러스터 엘라스틱서치 ( elasticsearch 3node)  (0) 2020.05.09
elasticsearch index mapping 에 관한 생각  (0) 2020.04.17
logstash ruby syntax  (0) 2020.04.14
logstash file stdin  (0) 2020.04.14