[230424] module 1~2 실습 기록

뜨개발자·2023년 4월 24일
0

TIL

목록 보기
64/75
PUT blogs_test
{
  "settings": {
    "analysis": {
      "char_filter": {
        "my_filter": {
          "type": "mapping",
          "mappings": ["X-Pack => XPack"]
        }
      },
      "analyzer": {
        "my_content_analyzer": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": ["lowercase"],
          "char_filter": ["my_filter"]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "content": {
        "type": "text",
        "analyzer": "my_content_analyzer"
      }
    }
  }
}

POST blogs_test/_analyze
{
 "text": ["We love X-Pack"],
 "analyzer": "my_content_analyzer"
}

POST blogs_test/_doc
{
  "content": "We love X-Pack"
}

mapping에서 분석기 만들어놓고, 필드 타입이랑 분석기를 지정해 줬는데도 document를 넣으면 keyword랑 다를 바 없이 "We love X-Pack"가 그대로 저장되는 것을 확인
=> 우리한테 보여줄 때에는 그렇게 보이고, analysis는 내부적으로 실행되어 그 결과는 따로 가지고 있는 것!
그래서 어떻게 분석되는지 확인할 때 쓰는 것이 "_analyze" API


PUT 인덱스이름 # 아무것도 없는 빈 인덱스 생성

PUT 인덱스이름/_mapping # 빈 인덱스에 매핑 추가 가능
PUT 인덱스이름 # 위 두 번의 요청과 이 한 번의 요청은 동일한 결과
{
	"mapping": {
    	...
    }
}

새 인덱스로 reindex

POST _reindex
{
	"source": {
		"index": "원본 인덱스"
    },
    "dest": {
    	"index": "목표 인덱스"
    }
}

인덱스 내 document 개수 확인

GET 인덱스이름/_count

HTML 태그 제거하는 char_filterhtml_strip


query나 aggregation에 사용하지 않을 필드는 doc_valuesfalse로 해두면 저장공간을 절약할 수 있음

PUT 인덱스이름
{
	"mappings": {
    	"properties": {
        	"필드명": {
            	"doc_values": false
            }
        }
    }
}

실습 페이지 Lab 2.4의 1번 solution 결과로 _search 했을 때 search_tagstags의 모든 필드가 나오지 않는 점이 의문
=> document를 indexing할 때 설정하지 않은 필드는 결과에서도 보여주지 않기 때문
빈 배열로 나오는 필드는 빈 배열이 indexing할 때 값으로 있었던 것


"doc_values": false"enabled": false는 모두 query와 aggregation에 사용할 수 없음
=> 그럼 왜 두 개의 약속어가 존재하는지 의문

doc_values: false

  • query, aggregation에 사용할 수 없음 (오류 발생)
  • 필드에 대한 검색은 가능

enabled: false

  • query, aggregation에 사용할 수 없음 (결과값이 0)
  • object type에 사용하며, 상위 필드에서 선언하면 그 하위 필드들까지 모두 enabled가 false로 설정됨
  • 현재는 사용하지 않는 옵션

(추가)
index: false

  • query, aggregation에 사용할 수 없음
  • 필드에 대한 검색도 불가능
  • enabled 대신 사용 가능
profile
뜨개질하는 개발자

0개의 댓글