본문 바로가기

Lucene/Lucene In Action11

[루씬 인 액션] 4. 검색(1) - IndexSearcher 검색은 5가지 주제를 통해 알아보겠습니다 1. 루씬 색인의 문서 검색 2. 다양한 루씬 내장 질의 활용 3. 검색 결과 활용 4. 연관도 점수 계산 방법 5. 사람이 입력한 질의 변환 앞에선 검색 준비 단계인 색인을 구축하는 과정을 설명했습니다 이제 색인 과정에들인 노력을 활용할 수 있는 방법을 살펴봅시다 루씬의 핵심 검색 API IndexSearcher : 색인을 검색하는 기능을 담당하는 클래스 Query : 실제 Query 하위 클래스에서 특정 질의 기능을 구현 QueryParser : 텍스트 형태의 질의를 분석해 루씬 Query 객체로 변환 TopDocs : IndexSearcher.search 검색한 결과 중 연관도 점수가 가장 높은 결과 문서를 담음 (내림차순) ScoreDoc : TopDocs.. 2020. 11. 29.
[루씬 인 액션] 3. 색인(2) - 고급 색인 기법 준실시간 검색 루씬 2.9이상 핵심 기능 중 하나인 준실시간(Near real time) 검색 기능이 추가되었습니다 준실시간이란 색인한 문서를 거의 즉시 검색할 수 있는 기능입니다 일반적인 검색 엔진에서는 제대로 지원하지 못하는 경우가 많습니다 루씬에서는 IndexReader.getReader() 메소드를 통해 준실시간 검색을 지원합니다 IndexReader 객체는 기존에 열려있던 세그먼트 정보를 그대로 사용하며, 새로 추가되거나 변경된 세그먼트만 새로 읽어 들이기 때문에 매우 효율적으로 빠르게 생성합니다 색인 최적화 수많은 세그먼트로 구성된 색인의 경우 최적화 과정을 거쳐 세그먼트의 개수를 최소화하면 검색 속도를 향상시킬 수 있습니다 최적화 작업은 검색속도를 향상시켜주지만, 색인 속도에는 영향이 없다 .. 2020. 11. 18.
[루씬 인 액션] 2. 색인(1) - 색인 절차 및 작업 색인에서는 4가지 주제를 통해 알아보겠습니다 1. 기본적인 색인 작업 2. 색인 과정에서 문서나 필드에 중요도 지정 3. 날짜, 숫자 필드, 정렬 가능한 필드 4. 고급 색인 기법 색인 작업은 단 하나의 목표를 갖고 있다는 점을 기억하자! → 바로 사용자에게 제공할 검색 서비스의 품질입니다 즉, 거의 모든 검색 애플리케이션에서 색인 과정의 세부적인 설정 1~2가지 보다는 사용자가 원하는 검색 기능이 훨씬 중요합니다 루씬 데이터 모델 문서와 필드 문서란 루씬에서 색인과 검색 작업을 진행할 때 한 건이라고 부를 수 있는 단위입니다 문서에는 1개 이상의 필드를 가집니다 검색 시점에 특정 필드의 값을 검색할 수 있는데 예를 들어 'name:jack'이라고 검색하면, name이란 필드에 jack이란 단어가 들어있.. 2020. 11. 18.
[루씬 인 액션] 1. 루씬(Lucene)의 개념 및 구조 루씬이란? → 루씬은 자바로 만들어진 고성능 정보 검색(IR : information retrieval) 라이브러리입니다 (IR : 문서를 검색하거나, 문서의 내용을 검색하거나, 문서와 연관된 메타 정보를 검색하는 과정을 뜻합니다) 루씬은 파일 검색이나 웹 문서 수집, 웹 검색 등에 바로 사용할 수 있는 애플리케이션이 아니고, 검색 기능을 갖고 있는 애플리케이션을 개발할 때 사용할 수 있는 라이브러리입니다 루씬은 색인과 검색기능에만 집중하고 강력하게 지원해줍니다 (색인 : 간단히 말해 특정 단어로 직접 이동할 수 있는 자료구조라고 보면 되고, 정보 검색에서 말하는 색인의 개념은 일반적인 책의 뒤에 있는 색인과 동일합니다) 루씬은 검색 대상 확보(수집)와 관련된 기능은 포함 하지 않습니다 루씬과 검색 애플.. 2020. 11. 8.