Elasticsearch Script 조회 및 등록

JunMyung Lee·2021년 11월 18일
0

Elasticsearch

목록 보기
3/37

ES 서버에 어떠한 스크립트가 적용되어 있는지, 또 그 스크립트는 어떤 코드로 작성되어 있는지
확인하고 싶을 때가 있다. 그때 확인하는 명령어는 다음과 같다

Kibana로 조회하기

GET _cluster/state/metadata?pretty&filter_path=**.stored_scripts

특정 스크립트를 등록하고 싶으면 다음과 같이 스크립트를 작성하고 적용한다

Kibana로 등록하기

PUT _scripts/my-stored-script
{
  "script": {
    "lang": "painless",
    "source": """
      TimestampHour date =  doc['@timestamp'].value;
      return date.getHour()
    """
  }
}

거리순 정렬 예시

"distance_script" : {
    "lang" : "painless",
    "source" : "!doc['geo_point'].empty ? doc['geo_point'].arcDistance(params.lat, params.lon) * 0.001 : 1000"
}

질의식 sort

{
  "sort": [
    {
      "_geo_distance": {
        "geo_point": [
          {
            "lat": 37.49790596008327,
            "lon": 127.02765558731741
          }
        ],
        "unit": "km",
        "distance_type": "arc",
        "order": "asc",
        "validation_method": "STRICT",
        "ignore_unmapped": false
      }
    }
  ]
}

질의식 functions

"functions": [
  {
    "filter": {
      "match_all": {
        "boost": 1.0
      }
    },
    "script_score": {
      "script": {
        "id": "distance_script",
        "params": {
          "lat": 37.49790596008327,
          "lon": 127.02765558731741
        }
      }
    }
  }
]

0개의 댓글