1. scroll

   elasticsearch에서 배치작업등 데이터에 대한 배치 작업시 scroll을 사용하여 처리할수 있음 (scroll은 해당 데이터를 메모리로 올려 놓기 때문에 oom 발생 가능)


   1) 생성시

curl -XGET 'localhost:9200/twitter/tweet/_search?scroll=1m' -d '

{

    "query": {

        "match" : {

            "title" : "elasticsearch"

        }

    }

}'

 

      1y = 1year, 1M = 1month, 1m = 1minute, 1h = 1hour


처음 수행하면 scroll_id가 알수 있어서, 다음번 수행시 scroll_id를 가지고 검색


curl -XGET  'localhost:9200/_search/scroll'  -d'

{

    "scroll" : "1m", 

    "scroll_id" : "c2Nhbjs2OzM0NDg1ODpzRlBLc0FXNlNyNm5JWUc1" 

}

    

    2) 삭제시

      curl -XDELETE localhost:9200/_search/scroll -d '

{

    "scroll_id" : ["c2Nhbjs2OzM0NDg1ODpzRlBLc0FXNlNyNm5JWUc1"]

}'


curl -XDELETE localhost:9200/_search/scroll -d '      -- multi

{

    "scroll_id" : ["c2Nhbjs2OzM0NDg1ODpzRlBLc0FXNlNyNm5JWUc1", "aGVuRmV0Y2g7NTsxOnkxaDZ"]

}'  


2. explain api

   특정한 document 또는 쿼리에 대해서 score 계산에 대한 내용을 확인을 하는 api


   curl -XGET 'localhost:9200/test/t1/1/_expain' 

   curl -XGET 'localhost:9200/test/t1/1/_expain' -d '{ ~~~}'


3. profile api

   느린 쿼리 확인 및 성능 향상을 위해서 쿼리 수행시 내부 개개의 component 수행에 대한 자세한 시간정보를 제공해 주는 api


   curl -XGET 'localhost:9200/_search' -d '{

"profile" : true,

"query" : {

"match" : { "message" : "search test" }

}

   }'


  결과는 query, collectors, rewrite section을 포함하여 return.


4. index alias를 사용한 index 교체

     1. testA에 대한 alias test 추가

curl -XPOST 'http://localhost:9200/_aliases' -d '

{

    "actions" : [

        { "add" : { "index" : "testA", "alias" : "test" } }

    ]

}'


2. alias testA에 대한 정보확인

curl -XGET 'http://localhost:9200/_alias/suggest?pretty=true'


3. 새로운 index 생성 및 test alias 추가

curl -XPOST 'http://localhost:9200/_aliases' -d '

{

    "actions" : [

        { "add" : { "index" : "testB", "alias" : "test" } }

    ]

}'


4. testA 삭제하고 testB 인덱스로 서비스 제공

curl -XPOST 'http://localhost:9200/_aliases' -d '

{

    "actions" : [

        { "remove" : { "index" : "testA", "alias" : "test" } }

    ]

}'


5. refresh_interval 값 조정

   인덱스에 인덱싱 주기를 조정하는 값

curl -XPUT localhost:9200/test/_settings -d '{

    "index" : {

        "refresh_interval" : "30s"

    } }'



6. sort 성능

elasticsearch.yml 파일에 아래와 같이 설정후 restart..


index.fielddata.cache: soft 

indices.fielddata.cache.size: 80%

indices.fielddata.cache.expire: 24h

'NoSQL > Elasticsearch' 카테고리의 다른 글

elasticsearch snapshot and restore  (0) 2016.06.15
elasticsearch monitoring  (0) 2016.06.15
elasticsearch optimize api  (0) 2016.06.15
elasticsearch warmers  (0) 2016.06.15
elasticsearch cluster 상태확인  (0) 2016.06.14

+ Recent posts