Category (227) 썸네일형 리스트형 [ElasticSearch] Nori 분석기, 오타 보정(fuzzy), 로그스태시(logStash) 노리 분석기레퍼런스1 : https://esbook.kimjmin.net/06-text-analysis/6.7-stemming/6.7.2-nori 6.7.2 노리 (nori) 한글 형태소 분석기 - Elastic 가이드북이번 장에서는 elasticsearch가 데이터를 저장하는 색인 과정에서 처리하는 수많은 작업들에 대해 알아보았습니다. 텍스트 분석 및 텀의 개념과, 데이터 분석에 사용되는 애널라이저, 토크나이저,esbook.kimjmin.net 잘 설명한 글https://hanamon.kr/elasticsearch-%EA%B2%80%EC%83%89%EC%97%94%EC%A7%84-nori-%ED%98%95%ED%83%9C%EC%86%8C-%EB%B6%84%EC%84%9D%EA%B8%B0-%EA%B2%8.. [ElasticSearch] 엘라스틱서치 - Springboot 연동 이슈 이번 프로젝트간 우리 서버는 총 두대이다. (편의상 본체 서버 A, 서브 서버 B로 부르겠다.) ElasticSearch(특히 kibana)와 스크래퍼가 자원을 많이 먹기에, 보조 서버 B에 기능을 할당해놓은 상태이다. 그리고 주요 로직은 A 서버에 집중되어 있다. 따라서 A 서버의 springboot와 B 서버의 ElasticSearch를 연동해야 한다. 이 과정에서 자연스럽게 원격 접근을 위해 X-pack등의 보안 기능을 고려해야 한다는 점을 이제야 깨닫았다. 다행스럽게도 7.1~7.2 버전부터 해당 기능이 부분적으로 무료로 풀린 듯 하다. 7.2 version x-pack 공식 docs : https://www.elastic.co/guide/en/elasticsearch/reference/7... 인터셉터(Interceptor)란? 인터셉터. 수업을 수강하며 들었었던 개념이지만, 문득 어디에 쓰이고 어떻게 사용하는지는 알아야 될 것 같아 찾아보고 글을 쓴다. 이게 뭔데요? 인터셉터는 스프링 프레임워크에서 HTTP 요청을 가로채거나 수정, 추가 작업을 할 수 있는 구성 요소다. 이 얘기는 해당 스프링 서버로 들어오는 HTTP 요청에서 로직보다 앞세워 무언가 선행 조치를 취할 수 있다는 말이다. 내가 짠 코드보다 앞서서 전처리를 하거나.. 그렇기에 관리자 인증 등의 예시가 나왔던 것이 이해가 된다. 인터셉터는 MVC 패턴에서 Controller로 가기 전, 후에 작동해서 웹 애플리케이션의 전반적인 동작을 관리한다. Filter랑 뭐가 달라요? 필터 역시도 앞서 말했던 것처럼, 유사한 역할을 수행한다. 다만 가장 큰 차이점은 생성 위치와.. 짧게 진행하는 이번주 회고 성과 : 스크래퍼 적용 완료 본격적으로 셀레니움을 통한 플랫폼 별 정보 수집이 가능하게 되었다. MongoDB에 1차 분류 텍스트들을 현재 보관 중이다. ElasticSearch 학습 본격적인 개발에 앞서 필요한 기능들에 대해 학습하고 정리하는 시간을 가졌다. 인덱스, 도큐먼트, 쿼리, 분석기, 필터링, 그리고 더해서 노드와 클러스터의 개념까지. 이제 스크래퍼를 통해 데이터를 수집하는 만큼, 정말로 검색 기능 및 유사도 측정 기능을 완성해야 한다. [ES] kibana 자동 실행 변경 1. Kibana.service 파일 생성 경로는 다음과 같이 설정하였다. /etc/systemd/system/kibana.service // kibana.service 파일 예시 [Unit] Description=Kibana //설명 [Service] ExecStart=/home/ubuntu/elasticsearch/kibana/bin/kibana //파일 경로 Restart=always User=ubuntu //사용 유저 Environment=NODE_ENV=production [Install] WantedBy=multi-user.target 2. 명령어 및 실행 다음 명령어로 서비스를 시작하고 시스템 시작 시 자동으로 실행되게 설정한다. sudo systemctl start kibana sudo s.. [ElasticSearch] 8. 클러스터와 노드의 구조 기본 개념 클러스터(Cluster) 일반적으로 컴퓨터 시스템에서의 클러스터는 여러 컴퓨터를 병렬로 연결하여 하나의 시스템으로 묶는다는 개념으로 쓰인다. 이렇게 하면 시스템 장애를 대비해 고가용성을 챙기며, 시스템 성능도 높일 수 있기 때문이다. (하나가 고장나도 다른 컴퓨터가 이를 대체하며, 병렬 처리를 가능하게 한다.) ElasticSearch에서는 여러 노드들의 집합을 의미한다. 클러스터는 하나의 유니크한 이름으로 식별되며, 이 이름은 클러스터에 참여하는 노드들이 연결될 때 사용된다. 노드(Node) 엘라스틱 서치에서 클러스터의 일부로 동작하는 인스턴스. 일반적으로 한 개의 컴퓨터(혹은 서버)에 하나의 노드를 구성한다. 이는 물리적/가상적 단위로도 구분되기도 한다. 데이터의 저장과 색인, 검색 작업을.. 여행지 오픈 API 설명과 Elastic Search를 사용한 아이디어. 우리 팀은 주니어 개발자들을 위한 'Trip Open API'를 만들고 있다. 이 API는 기존의 공공데이터 중 여행지의 정보가 너무 부실했기 때문에, API를 사용하는 사용자들이 조금 더 확장된 기능과 편리함을 느낄 수 있도록 계획하였다. 이 과정에서 편리함과 효율성으로 생각한 것은 '추천' 과 '확장된 정보'이다. 기존 공공데이터 API의 경우 여행지명과 지역 위치, 간단한 설명과 위경도만 존재했다. 한정된 데이터였기에, Selenium을 통해 기존 데이터를 기반으로 정보를 추가적으로 스크래핑해서 관련된 음식점, 숙소, 평점 등을 추가할 예정이다. 또한 전문 검색과 키워드 단위로 나눈 '추천 키워드' 개발을 통해 명확하지 않은 개념에도 여행지를 추천할 수 있다. 기본적으로 1차 수집 데이터는 Mong.. [ElasticSearch] 7. 쿼리 개요 엘라스틱서치는 검색을 위해 리프 쿼리와 복합 쿼리를 지원한다. 리프 쿼리는 특정 필드에서 용어를 찾는 쿼리로, match / term / range 쿼리로 나뉜다. 복합 쿼리는 쿼리들을 조합해 사용하고 대표적으로 이전 포스팅에서 설명했던 논리 쿼리 등이 존재한다. 전문 쿼리와 용어 수준 쿼리 이전 시간의 keyword와 text의 차이에 대해 생각해보자. - 전문 쿼리 : 전문 검색을 위해 사용하며 필드는 매핑 시 text 타입으로 선언해야 한다. - 용어 수준 쿼리는 정확히 일치하는 용어를 찾기 위해 사용하며, keyword로 선언한다. 전문 쿼리 매치 쿼리 - 전문 검색 실행(text) 매치 쿼리는 대표적인 전문 쿼리로, 특정 필드의 용어를 검색하는데 사용한다. //1. 특정 필드 검색하기 GE.. 이전 1 ··· 23 24 25 26 27 28 29 다음