Tag: Elasticsearch

Elasticsearch

Elasticsearch 7.3 활용해보기 #7 – index의 갱신

현재 만들고 있는 서비스에서는 MariaDB와 연동하여 검색데이터를 색인하고 있습니다. MariaDB에서 변경되는점을 바로 Elasticsearch에서 갱신할 수 없기 때문에 일정시간마다 동기화(?) 해주는 방식으로 운영하고 있습니다. 물론 -_-.. 할수는 있지만… 성능적으로 볼때 잦은 update는 자료 자체가 수정되는게 아닌 키를 변경하고 새로운 데이터가 추가되는 작업으로서 검색성능을 떨어뜨릴 수 있기 때문에 최적의 indx 상태를 유지하기 위해서 새로 생성하는게 좋다고 하더군요… […]

Elasticsearch

Elasticsearch 7.3 활용해보기 #6 – _msearch 여러쿼리를 한번에

계획 없이 포스팅 하기 시작해서 언제까지 elasticsearch에 대해서 적을지에 대한 계획은 없습니다. 기존에 _search api를 통해서 검색을 해보았는데, 실무에 활용하다보니 갈수록 쿼리가 많아지게 되어서 찾아보니… 여러개의 쿼리를 한번에 보낼 수 있는 방법이 있었습니다. 쿼리가 호출되는 단위를 묶어주니 그만큼의 네크워크 지연시간이 줄어들 수 있겠죠. 전송량도 중요하지만, 전송되는 횟수도 속도에 영향을 많이 줍니다. 여러개의 쿼리 한번에 처리하기 […]

Elasticsearch

Elasticsearch 7.3 활용해보기 #4 – 기본적인 쿼리 사용

DB라면 기본적인 CRUD를 만들어봅시다. Elasticsearch는 RestAPI 다루듯이 쿼리한다고 생각하면 접근이 쉽습니다. 실제로 http 프로토콜로도 쿼리가 가능해서 서버에서 cros 접근설정이 되어있다면, Javascript로도 충분히 컨트롤이 가능하지요.. RestAPI에서 데이터를 가져올때 GET, 추가할때 POST, 삭제할때 DELETE, 수정할때 PUT을 사용하는 것처럼 Elasticsearch에서도 동일하게 사용됩니다 Elasticsearch에서는 index가 DB의 역할을 함으로 데이터를 추가하기위해서는 먼저 정의해야합니다. mapping을 통해 특별한 구조를 줄수도 있고 #3에서 […]

Elasticsearch

Elasticsearch 7.3 활용해보기 #3 – 사용자 색인작업(한글!)

생각해보니 이 앞전에 해보았던 자연어 처리기를 활용하여 인덱스에 세팅해보니 뭔가가 부족함이 있어 보입니다. 무슨 말이냐면, 붙어있는 단어들을 처리하지 못해서 mysql 에서의 field like ‘%이장님%’ 과 같은 단어를 처리하지 못하였습니다. 그래서 인덱스 생성시에 tokenizer 등을 추가적으로 지정해줄 필요가 있습니다. -_- #2 에서 봤던 기본 분석기로는 세팅을 바꿀 수가 없어서 분석기가 포함된 인덱스를 만들어봅시다. 간단한 테스트를 할 […]

Elasticsearch

Elasticsearch 7.3 활용해보기 #2 – 자연어 분석기(nori)

아무것도 모르고 시작한 Elasticsearch…. 이제 좀 어느정도 적응중입니다. 전편에서는 설치를 해보았는데… 그냥 쓰면 한글이 잘 검색되지 않습니다. Elasticsearch는 색인을 하여 검색할 단어를 미리 뽑아놓아야지만 원할한 검색이 이루어집니다. 그냥하게되면 빈칸 단위로 색인이 되어 정확한 단어를 입력해야지만 검색이 되게 됩니다. 공식적으로 제공하는 자연어분석기인 nori를 설치해보았습니다. 다음 링크를 참고하세요. 설치는 기본 폴더에서 처리되게 됩니다. (참고: /usr/share/elasticsearch ) 설치는 […]