2. Solr 기능
• Schema
– 색인할 문서의 필드와 그 필드 타입을 쉽게 정의
– Lucene의 Analyzer 사용
– Dynamic Field를 지원
– Copy Field를 사용하여 여러 field를 검색 가능한 단일 field로 묶을 수 있음
– 외부 파일을 통해 금지어 등을 설정할 수 있다.
• Query
– HTTP 인터페이스로 XML/XSLT, JSON, Python, Ruby 와 같은 응답 포멧 설정
– 쿼리와 필드 값에 근거한 Faceted Search 제공
– query로 검색 정렬을 정의 가능
– 용이한 검색 score 설정
– query에 특정 field에 대한 가중치 부여 가능
• Core
– query handler와 확장 가능한 XML format
– unique key field에 기반하여 중복 문서 탐지
• Caching
– query 결과, 필터, 문서에 대한 캐시 설정
– 사용자 수준에서의 캐시 설정 지원
• Replication
– rsync transport를 통해 효과적인 분산 색인
• Admin Interface
– cache, update, query 상태를 알려줌.
– Text Analyzer에 대한 디버거 제공
– 웹 쿼리 인터페이스 제공
2
14. 설정 파일
1. solr 디렉토리에 solr.xml 설정파일 수정
<solr persistent="true" sharedLib="lib">
<cores adminPath="/admin/cores" defaultCoreName=“core1">
<core name=“core1" instanceDir=“core_dir1" />
<core name=“core2" instanceDir=“core_dir2" />
</cores>
</solr>
2. solr 디렉토리에 core의 홈 디렉토리 생성
- solr
- core_dir1
- core_dir2
3. 생성한 각 디렉토리에 conf와 data 디렉토리를 생성한다. data 경로는
solrconfig.xml에서 아래와 같은 부분에서 설정할 수 있다.
<dataDir>${solr.data.dir:}</dataDir>
- solr
- core_dir1
- conf
- data
- core_dir2
- conf
- data
14
16. Web Admin Interface
• Config, Schema, Distribution 정보 조회
• Query Interface
• 각종 통계
– Caches: lookups, hits, hitratio, inserts, evictions, size
– RequestHandlers: requests, errors
– UpdateHandler: adds, deletes, commits, optimizes
– IndexReader, open-time, index-version, numDocs, maxDocs
• Analysis Debugger
– 각 분석 단계에 대한 결과를 보여줌
– 쿼리와 색인에 대한 매치에 대한 정보를 보여줌
16
28. Index
• 기존 데이터를 모두 지움
$ java -Durl=http://localhost:$port/solr/update/?commit=true
-Ddata=args -jar $dir/post.jar "<delete><query>*:*</query></delete>"
• 다음과 같이 post.jar 파일을 이용하여 색인함
$ java -Durl=http://localhost:8983/solr/core1/update/?commit=true -jar post.jar core1_data.xml
$ java -Durl=http://localhost:8983/solr/core2/update/?commit=true -jar post.jar core1_data.xml
※ 주의
– 처음 색인 파일 생성시
<doc>
<field name="id">id1</field>
<field name=“title“>title1</field>
</doc>
– 색인 파일 갱신시
<update>
<doc>
<field name="id">id1</field>
<field name=“title“>title1</field>
</doc>
</update>
28