데이터 관리
Elasticsearch Object타입과 Nested타입
Elasticsearch Object타입과 Nested타입
2020.04.26엘라스틱서치의 필드 데이터 타입인 Object과 Nested을 알아보고, 유사한 두 타입의 차이점을 살펴보자. 인덱스 생성 시 매핑 설정을 정확히 하기 위해서는 필드 타입을 잘 이해하는 것이 중요하다. 책 엘라스틱서치 실무 가이드와 엘라스틱서치 공식가이드북를 바탕으로 정리한 포스팅입니다. 내용에 오류가 있다면 댓글로 알려주시면 감사하겠습니다 :) 공식 가이드북 : 7.2.5 Object와 Nested Object 데이터 타입 JSON 포맷의 object, 즉 객체 타입의 값을 사용할 수 있다. 내부 객체를 계층적으로 포함하고 있는 경우 object 타입 형태로 사용한다. object 타입 정의를 위해 특정 키워드를 사용하지 않고 문서 구조를 입력하면 된다. Object 타입을 이해하기 위해 아래 예제를 ..
Elasticsearch 노리(Nori)형태소 분석기의 stoptags 한글 품사 태그 정리
Elasticsearch 노리(Nori)형태소 분석기의 stoptags 한글 품사 태그 정리
2020.04.19Elasticsearch에서 공식적으로 지원하는 한글 형태소 분석기 노리(Nori)의 품사 태그와 예시를 정리하였다. 공식 가이드북에 따르면 한글 검색에서는 명사, 동명사 정도만을 검색하고 조사, 형용사 등은 제거하는 것이 바람직하다고 한다. 하지만 이는 서비스하고 있는 업무 도메인에 따라 달라질 수 있을 것이다. 엘라스틱서치에서 지원하는 Nori의 품사 태그들이 어떤 것이 있는 지 알아보고, 각자의 상황에 맞게 쓰는 것을 추천한다. Nori 토크나이저가 사용하는 한글 사전은 mecab-ko-dic과 세종 말뭉치이다. 한글 단어의 품사 태그는 사전마다, 한글 형태소 분석기의 내부 로직에 따라 달라질 수 있다. 예를 들어, 국립국어원 혹은 다른 한글 형태소 분석기에서는 어떤 단어를 "접두사"로 매핑하였지만..
Elasticsearch in action 정리 블로그 발견
Elasticsearch in action 정리 블로그 발견
2020.04.18엘라스틱서치 구글링 중에 좋은 블로그를 발견하였다. elasticsearch in action 이라는 책을 정리하신 글로 보인다. 내가 보고있는 책 보다 심도있는 내용을 다루고 있어서 참고하기 좋아 보인다. "길은 가면, 뒤에 있다."라는 블로그이다. - 엘라스틱서치 : https://12bme.tistory.com/471?category=737765 - 데이터 검색 : https://12bme.tistory.com/477?category=737765 - 데이터 분석 : https://12bme.tistory.com/478?category=737765 - 유사도 검색 : https://12bme.tistory.com/478?category=737765 - 집계데이터 : https://12bme.tisto..
Elasticsearch 대소문자 색인과 검색 keyword tokenizer VS normalizer
Elasticsearch 대소문자 색인과 검색 keyword tokenizer VS normalizer
2020.04.17엘라스틱서치에서 데이터를 대소문자 구분없이 검색하기 위해서는 lowercase 혹은 uppercase 토큰 필터를 적용해야한다. 토큰필터가 적용되게 색인하기 위해서는 인덱스 매핑 시점에 필드에 analyzer나 normalizer를 설정하면 된다. Elasticsearh 공식문서, 김종민님의 공식가이드북, 책 엘라스틱서치 실무 가이드를 참고하여 제가 이해한 내용을 정리한 포스팅입니다. 포스팅 내용의 오류를 발견하시면 댓글 부탁드립니다 :) 예를 들어 cafe, Cafe, café 는 모두 다른 term이다. 하지만 사용자가 "cafe"로 검색했을 때 대소문자 구분없이 세 개의 term이 모두 검색되도록 할 수 있다. (café는 아스키코드를 처리해야하는 데 아래에서 내용을 다룬다) 필드에 토큰 필터를 적..
ORACLE SQL paging 처리
ORACLE SQL paging 처리
2017.03.21Select outer_paging_tbl.* From ( Select rownum as paging_seq , inner_paging_tbl.* From ( 쿼리쿼리쿼리 ) inner_paging_tbl.* Where rownum = (:request_page-1) * (:row_cnt)+1
Oracle instr 함수로 문자열 자르기
Oracle instr 함수로 문자열 자르기
2017.02.14Oracle instr 함수는 문자열(텍스트)에서 특정 문자의 위치를 리턴해주는 함수입니다. instr 함수와 substr 함수를 함께 사용하여 특정 문자를 기준으로 텍스트를 파싱하여 가져올 수 있습니다. 아래와 같이 '|' 기호로 구분되어 있는 문자열이 있을 때, '|' 기호의 위치를 찾아 substr 함수를 이용하면 내용별로 잘라올 수 있겠죠.12SELECT 'Start|안녕,|반가워!|End' FROM dualcs 이제 '|' 기준으로 문자열을 잘라서 가져와봅시다. 123456789SELECT 내용 , SUBSTR(내용, 1, INSTR(내용, '|', 1, 1) - 1) AS a , SUBSTR(내용, 1, INSTR(내용, '|', 1, 1) + 1, INSTR(내용, '|', 1, 2) - I..
Oracle CLOB 컬럼 Select 시 주의사항 (ORA-06502)
Oracle CLOB 컬럼 Select 시 주의사항 (ORA-06502)
2017.01.24Oracle CLOB 컬럼은 Oracle 버전 10g 이후로 지원되는 LOB 타입의 종류 중 하나로, 문자열이나 이미지 데이터를 4GB까지 저장할 수 있습니다.어느 날 화면에서 처리한 데이터가 DB에 정상적으로 들어가있는지 확인하기 위해 Orange에서 CLOB 컬럼을 조회해봤습니다.서비스 Log나 화면 IO를 보면 데이터를 정상적으로 DB에 넣는 것 처럼 보이는데, Orange에서 Select로 조회해보면 일부가 깨져서 보이거나 데이터가 잘리는 현상이 있었습니다. [현상]입력한 값 : 안녕하세요? 테스트 데이터입니다.Orange에서 조회한 CLOB 컬럼의 값 : 안녕하세요? 테스트 [원인]프로그램 오류라 생각하고 몇 시간 동안 로그도 뒤져보고, 비슷한 유형의 다른 프로그램도 테스트해보고 하다가 원인을 ..