엘라스틱서치 4

[ElasticSearch] _update_by_query (update by query)

특정 쿼리에 해당하는 데이터들을 한번에 update 하는 쿼리 index_name/_update_by_query [POST] { "script":{ "source":"ctx._source.USER_LOCATION = params.location", "params":{ "location":"경기도" } }, "query":{ "term":{ "USER_LOCATION":"서울특별시" } } } index_name에 있는 document 들 중에 USER_LOCATION 값이 서울특별시 인 데이터들을 경기도로 변경 주의할점!!! update 시킬 데이터가 지나치게 많을 경우 처리하는 개수를 정할 수 있는지 모르겠는데 일정량씩 처리를 해서 오래 걸릴 수 있으니 생각하고 사용해야함 전에 데이터 몇만개 짜리를 _..

ElasticSearch 2019.07.22

[ElasticSearch] op_type option

데이터를 생성할 때 이미 있으면 등록 못하게하는 옵션 op_type=create 예) user_data/doc/admin?op_type=create 이렇게 해서 사용 update로 이레스틱에 넣을 때 _id가 없으면 데이터를 insert시키는데 동일 한게 있으면 해당 데이터를 업데이트 시켜버림 만약 등록할 의도로 했는데 기존껄 덮어버리면 곤란한 일이 생길 수 있으니 상황에 맞춰 사용하면 좋을듯함

ElasticSearch 2019.06.07

[ElasticSearch] _update로 데이터 update

세레브로에서 1개의 도큐먼트를 수정하고 싶을 때 indexName/doc/_id/_update [POST] indexName : 수정하고자 하는 도큐먼트가 들어있는 인덱스명 _id : 수정하고자 하는 도큐먼트의 _id값 requestBody에 해당 도큐먼트 값 전부를 넣고 수정한뒤 send해야함 이렇게 다 넣고 수정해야하는데 특정 몇개만 수정하고 싶다고 그것만 넣고 수정하면 그 값만 들어가지고 나머지는 다 사라짐 특정 필드만 수정 하고 싶으면 아래와 같이 하면 된다. doc를 넣고 해야함

ElasticSearch 2019.06.07

[ElasticSearch] aggs top_hits (aggregation 중복제거 개념?)

이레스틱 쿼리로 데이터를 불러와 화면단에 출력중에 한가지 요청 사항 들어온게 특정 조건하에 중복되는 데이터들이 있다면 화면에 1개만 출력해달라는 요청사항이 들어와있어서 찾게된 쿼리인데 aggs 옵션중에 top_hits라는게 있었다. 난 aggs로는 통계 형식의 집계만 가능한 줄 알았는데 hits도 출력이 가능했다. { "size": 0, "aggs": { "dedup": { "terms": { "field": "type" }, "aggs": { "dedup_docs": { "top_hits": { "size": 1 } } } } } } 이런식의 쿼리를 사용하면 해당 인덱스 내에서 필드명이 type 인 데이터들 중에 값이 같으면 1개의 hits 데이터를 보여준다. top_hits 안에 size 개수를 변경..

ElasticSearch 2019.06.05