Search-Engine(29)
-
Lucene - 분석기(Analyzer)로 분석한 토큰(Token)결과 출력
Lucene - 분석기(Analyzer)로 분석한 토큰(Token)결과 출력 루씬에서 색인을 하기위해서는 선행과정이 있다. 물론 문서안에 정의된 여러개의 필드에 적용한 속성에 따라 다르긴 하지만 ANALYZE속성을 적용한 필드인 경우에는 색인하기 이전에 텍스트를 토큰으로 추출하고 그 토큰에 여러가지 메타정보(start,end 정수/위치증가값 등등의 데이터)를 섞은 텀으로 만든 후에 색인에 들어간다. 여기에서 보여줄 예제는 색인을 위한 텍스트에 분석기의 분석과정을 적용 후에 어떻게 토큰이 분리되는지 확인하는 간단한 예제이다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555..
2019.01.29 -
Lucene library를 이용한 간단한 색인/검색(루씬 라이브러리이용)
Lucene library를 이용한 간단한 색인/검색(루씬 라이브러리이용) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106package com.lucene.study; import java.io.File;import java.io.FileFilter;import java.io.FileNotFoundException;import java.io.FileReader;import java..
2019.01.03 -
Solr7.4 Tagger Handler (NER,Named-Entity Recognition)
Solr 7.4.x version의 Tagger Handler를 이용한 NER(Named-Entity Recognition)NER이란 자연어에서 뜻이 있는 단어를 뽑아내는 것이다. 챗봇처럼 자연어와 관련있는 기술에서 사용되는 기능인데, 예를 들어 "피자 주문할게요" 라는 질문이 있다. 이 문장에서 유추해 볼 수 있는 것은 "피자 주문" 이것을 더 보편화시켜 보면 "메뉴 주문"이라는 사용자질의 "의도"를 알 수 있다. 만약 "햄버거 주문할게요"라는 질의가 있으면 이 또한 "메뉴 주문"이라는 의도라는 것을 유추할 수 있다. 그럼 사용자가 어떠한 메뉴를 주문한다는 것은 알겠는데 그럼 그 메뉴가 무엇인가? 이러한 것이 챗봇에서는 NER이라는 기술로 추출해 낼 수 있는 단어라는 것이다. "피자 주문할게요"라는 질..
2018.09.22 -
Solr&Zookeeper(솔라&주키퍼) cloud 환경 구성
Solr&Zookeeper(솔라&주키퍼) cloud 환경 구성 Mac OS 환경에서 작성되었습니다. solr와 zookeeper를 연동하여 cloud 환경구성하기 입니다. 우선 진행하기 전에 수정 혹은 생성 되어야할 설정 목록입니다. 1)solr.xml : solr cloud를 이루는 solr instance에 관한 설정파일입니다.2)zoo.cfg : zookeeper 관련 설정파일입니다.3)collection config file : solr collection들이 가지게 될 schema.xml,solrConfig.xml 등의 파일이 들어가는 config file입니다. 이 파일은 zookeeper에 upconfig하여 모든 solr instance들이 공유하게 됩니다.4)zooServer Dir : ..
2018.09.13 -
Elasticsearch 로컬(1개의 클러스터)에서 n개 이상 노드띄우기
Elasticsearch local 환경에서 하나의 클러스터에 n개 이상의 노드(인스턴스)생성데이터 경로는 다른 클러스터의 여러 노드에 의해 공유 될수 있다. 이는 개발 시스템에서 장애 조치 및 다른 구성을 테스트하는데는 유용하다. 하지만 운영환경에서는 하나의 서버당 하나의 노드만 실행하는 것이 좋다. 즉, 하나의 서버에 하나의 노드만 실행시키기 위해서는 node.max_local_storage_nodes:1 로 설정하고, 만약 하나의 머신에서 여러 개의 노드를 실행시키기 위해서는 설정을 1 이상으로 조정해야된다. 만약 한 머신에서 두개 이상의 노드를 운영한다면 샤드들은 elasticsearch에서 자동으로 분배해준다. elasticsearch.yml의 적당한 위치에 node.max_local_stora..
2018.07.07