[Lucene] 루씬 - 검색 #1- IndexReader, IndexSearcher 앞서서는 루씬의 index에 관련해서 알아봤습니다.물론 앞선 예제에서 따라하기 형태의 index, search를 전부 경험해볼수 있으니, 기본적인 사용법은 예제와 같습니다.(기본 따라하기 예제 - https://tourspace.tistory.com/237) 루씬에서 지원하는 검색은 질의(Query)와 문서간의 유사성을 판단합니다.여기서 유사성은 Document에 질의한 term이 나오는 횟수로 결정되면 이 유사도로 scoring을 하고 해당 문서를 결과로 return 합니다. 검색 indexing처럼 크게 API 어렵거나 사용이 복잡하지 않습니다.다만 검색에서 기본적으로 사용되는 class들에 대해서 간단하게 정리하고자 합니다.이 글은 lucene v8.2.0 기준으로 작성되었습니다. 모든 예제코드는 .. 개발이야기/Lucene & Solr 5년 전
[Lucene] 루씬 - Search and Highlighting 예제 이번에는 문자열을 검색하고 이를 highlight 처리하는 방법에 대해서 알아봅니다.먼저 highlight 기능을 이용하려면 dependency에 highliter를 추가해야 합니다.maven project의 pom.xml 파일에 하기와 같이 추가하면 됩니다. Index writing폴더에 파일을 넣어두고 이 파일들의 내용을 검색해서 사용합니다.아래 링크에서 사용했던 방법과 동일한 방법으로 index를 생성합니다.https://tourspace.tistory.com/240 index를 생성하는건 동일한 코드이므로 코드에 대한 자세한 설명이 필요하다면 상기의 링크를 클릭하여 먼저 확인하시기 바랍니다. 1. Write helper class 생성class DocumentWriter2 { companion o.. 개발이야기/Lucene & Solr 6년 전
[Lucene] 아파치 루씬 - 기본 따라하기 (indexing과 Searching 예제) Apache의 Lucene은 검색을 위한 라이브러리 입니다. 이 라이브러리를 기반으로 하여 Apache Solr 또는 ElasticSearch가 구동됩니다. 코드는 자바로 되어이어 자바로 코드를 작성하면 됩니다. 다만 여기서는 코드 간소화및 효율화를 위해 kotlin으로 예제를 작성하였습니다. 일단 간단한 예제로 루씬의 사용법을 설명합니다. ※ 예제는 Kotlin으로 작성되었습니다. Maven 설정pom.xml 파일에 아래와 같이 dependency를 추가합니다. Sample data download간단하게 몇몇 text를 만들어서 예제로 사용해도 좋지만, 실제와 유사하게 대량(??)의 데이터를 입력하고 해당 데이터를 검색하는 형태로 진행하기 위해 미국 항공 기록 데이터를 샘플로 사용하겠습니다. 먼저 하.. 개발이야기/Lucene & Solr 6년 전
Cursor Adapter#4 - Loader Loader의 사용Loader는 안드로이드 3.0부터 제공되는 api로 activity와 fragment의 복잡한 생명주기로 인하여startManagingCurosr()와 requery()를 대체한다.즉, Activity와 Fragment의 변화에 따라 DB의 requery 작업을 수행하는 역할을 한다. 로더의 사용은 아래 세단계로 이루어 진다.1. 각 Activity나 fragment에서 LoaderManager 생성2. LoaderManager.LoaderCallabacks 구현3. Loader의 생성 -> CursorLoader나 AsyncTaskLoader 사용아래는 fragment에서 Loader를 이용하여 list를 만드는 예제이다.public class FragmentLoader extend.. 개발이야기/Android 7년 전