ElasticSearch field 와 field.keyword

승훈·2022년 6월 22일
0

elastic search 검색 중 field를 검색하는데 결과가 나오지 않고 에러 발생..
확인해보니 field.keyword를 붙여주어 검색을 해야했었다..

그래서 field 와 field.keyword의 차이점을 알아보려고 한다.

  • es 5.0 이후 부터는 String 타입은 text 와 keyword로 분리되었다.
    text: 전문 검색이 필요한경우 사용. 색인 전에 분석을 거쳐 full-text에 활용됨.
    keyword: full-text 가 필요 없는 필드에 사용하는것이 좋음. 즉 exact value에 대한 검색시 사용.
{
  "event" : {
    "mappings" : {
      "properties" : {
        "action" : {
          "type" : "integer"
        },
        "ai_flag" : {
          "type" : "integer"
        },
        "category" : {
          "type" : "integer"
        },
        "date" : {
          "type" : "long"
        },
        "dst_ip" : {
          "type" : "keyword"
        },
        "dst_port" : {
          "type" : "integer"
        },
        "sender_type" : {
          "type" : "integer"
        },
        "sensor_id" : {
          "type" : "keyword"
        },
        "signature" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword"
            }
          },
          "analyzer" : "signature_analyzer"
        }
      }
    }
  }
}

0개의 댓글