기존 Index에서 analysis 만 바꾸고 싶을 때 사용 하는 API를 알아보자.
1. Template 변경
2. reIndex 실행
3. analysis 변경 확인
4. 검색 쿼리 요청
1. Template 변경
cerebro를 사용해서 index_dump를 만들고 update 한다.
예) my-index -> my-index-dump
2. reIndex 실행
kibana>Dev Tools에서 아래와 같이 간단하게 reIndex가 가능하다.
POST _reindex
{
"source": {
"index": "my-index"
},
"dest": {
"index": "my-index-dump"
}
}
조건을 붙여서 reIndex하고 싶으면 아래와 같이 "query"문을 넣어서 수행해도 된다.
POST _reindex
{
"source": {
"index": "my-index",
"_source": {
"includes": ["field1", "field2"]
},
"size": 10000,
"query": {
"bool": {
"filter": [
{
"match_phrase": {
"field1": "search_keyword"
}
},
{
"range": {
"datetime": {
"gte": "2018-07-05T05:05:54.000Z"
}
}
}
]
}
}
},
"dest": {
"index": "my-index-dump"
}
}
3. analysis 변경 확인
_analyze api를 활용해 reIndex가 정상 적으로 수행 됐는지 확인한다.
GET my-index-dump/_analyze
{
"analyzer": "english_whitespace",
"text": [
"CJ ENM"
]
}
4. 검색 쿼리 요청
직접 검색도 해본다. 잘 reIndex 됐는지 꼭 확인하자.
GET unified-search/_search
{
"size": 10000,
"query": {
"bool": {
"should": [
{
"query_string": {
"query": "cj enm*",
"fields": [
"names_eng.*^8.0",
]
}
}
],
"adjust_pure_negative": true,
"minimum_should_match": "1",
"boost": 1
}
}
}
반응형