- Solr 소개
- REST 형식의 API를 사용하는 독립적 엔터프라이즈 검색 서버
- XML, JSON, CSV 혹은 HTTP 위 바이너리로 인덱싱을 진행
- HTTP GET 요청으로 검색
- XML, JSON, CSV 혹은 바이너리 결과를 반환
- Solr 특징
- 고급 Full-Text 검색 능력
- 다량의 웹 트래픽을 위한 최적화
- XML, JSON과 HTTP 등 오픈 인터페이스 기반 표준
- 종합적인 HTML 관리자 인터페이스
- 모니터링을 위한 서버 통계
- 선형 확장, 자동 인덱스 복사, 자동 대체와 복구
- 근 실시간 인덱싱
- XML 설정으로 유연성과 적응성을 제공
- 확장가능한 플러그인 아키텍처
- 사용 설명
- 설치 및 실행
- Java 1.7 이상 필요
- wget http://apache.mirror.cdnetworks.com/lucene/solr/4.9.0/solr-4.9.0.tgz
- tar -xvf solr-4.9.0.tgz
- cd solr-4.9.0/
- cd example/
- java -jar start.jar &
- 아래 주소를 통하여 Solr Admin에 접속
- http://211.49.227.178:8983/solr (211.49.227.178 대신 정확한 IP로 대체)
- 아래 그림은 Solr Admin 화면
- 데이터 인덱싱
- cd exampledocs/
- 아래 명령어를 통하여 solr.xml과 monitor.xml를 인덱싱
- java -jar post.jar solr.xml monitor.xml
- 아래 방법으로 solr 단어를 검색
- Core Selector -> collection1 -> Query -> q에 solr 입력 -> wt에서 xml 선택 -> Execute Query
- 혹은 아래 http 요청으로 직접 검색
- http://211.49.227.178:8983/solr/collection1/select?q=solr&wt=xml
- 아래 명령어로 exampledocs에 있는 모든 xml 파일 인덱싱
- java -jar post.jar *.xml
- 데이터 갱신
- 'java -jar post.jar solr.xml monitor.xml'와 'java -jar post.jar *.xml' 명령어로 solr.xml과 monitor.xml를 두번 인덱싱 하였지만 중복으로 인덱싱되지 않고 후에 인덱싱한 내용으로 대체
- 이는 인덱싱함에 있어 'id'라는 유니크한 키를 사용하기 때문이며 데이터 갱신은 이런 형식으로 진행
- 데이터 삭제
- 아래 명령어로 id가 SP2514N인 문서를 삭제
- java -Ddata=args -Dcommit=false -jar post.jar "<delete><id>SP2514N</id></delete>"
- 아래 명령어로 name에 DDR 단어가 포함된 문서를 삭제
- java -Dcommit=false -Ddata=args -jar post.jar "<delete><query>name:DDR</query></delete>"
- 위 삭제 명령어에서 -Dcommit=false 옵션을 사용하였기에 아래 명령어로 커밋하여야 문서를 검색하지 못함
- java -jar post.jar -
- 이렇게 하는 원인은 커밋하는 작업이 비싸기에 모든 작업을 한번에 커밋하는 것을 추천하기 때문
- 데이터 검색
- 아래 요청으로 video 관련 문서에서 name과 id 필드만 반환
- http://211.49.227.178:8983/solr/collection1/select/?indent=on&q=video&fl=name,id
- 아래 요청으로 video 관련 문서의 모든 내용을 반환
- http://211.49.227.178:8983/solr/collection1/select/?indent=on&q=video&fl=*
- 아래 요청으로 video 관련 문서에서 name, id 및 price를 필드를 반환하는데 price 내림 순으로 정렬
- http://211.49.227.178:8983/solr/collection1/select/?indent=on&q=video&sort=price%20desc&fl=name,id,price
- 아래 요청으로 video 관련 문서를 JSON으로 반환
- http://211.49.227.178:8983/solr/collection1/select/?indent=on&q=video&wt=json
- 아래 요청으로 video 관련 문서를 inStock 오름 순과 price 내림 순으로 반환
- http://211.49.227.178:8983/solr/collection1/select/?indent=on&q=video&sort=inStock%20asc,%20price%20desc
- 아래 요청처럼 함수 사용 가능
- http://211.49.227.178:8983/solr/collection1/select/?indent=on&q=video&sort=div(popularity,add(price,1))%20desc
- 설치 및 실행
- 참고 자료
Wednesday, December 31, 2014
Apache Solr
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.