티스토리 뷰
SolrJ 설명 및 실습 준비
본 블로그에서는 데이터를 색인 하는 방법으로 2가지를 소개할 예정이다.
첫번째 방법은 SolrJ 를 이용하는 방법이다.
SolrJ는 Solr에 접근하기 위한 java client로 solr index에 add, update, query 하는 api를 제공한다.
SolrJ 실습을 진행하기 위해 Java project를 준비해야 하는데
자신의 개인 프로젝트를 사용해도 상관없지만 본 블로그에서는 https://github.com/gujc71/project9 에 올라와 있는 게시판을 사용한다.
실습
1. 텍스트 편집기를 이용하여 solr-6.4.1/server/solr/test/conf 에 위치한 managed-schema를 열어 색인할 filed를 선언한다. (id 필드는 이미 선언되어 있다.)
<field name="title" type="text_general" indexed="true" stored="true" />
<field name="memo" type="text_general" indexed="true" stored="true" />
2. bin/solr restart 후 Solr Admin에서 추가한 필드가 제대로 입력되었는지 확인한다.
3. https://mvnrepository.com/artifact/org.apache.solr/solr-solrj 해당 링크로 이동하여 버젼에 맞는 maven dependency 를 복사한다.
4. pom.xml에 dependency를 추가한 후 프로젝트 우클릭- > maven -> update project 를 실행한다.
5. SolrJDriver 클래스를 만들고 다음 코드를 입력한다.
public static String url = "http://localhost:8983/solr/test";
public static SolrClient solr = new HttpSolrClient(url);
6. gu.board 의 BoardSvc 클래스에서 글을 저장하는 insertBoard 메소드에 다음 코드를 입력한다. 아래 코드로 데이터의 색인과 색인된 데이터의 수정이 가능하다.
SolrInputDocument solrDoc = new SolrInputDocument();
solrDoc.addField("id", param.getBrdno());
solrDoc.addField("title", param.getBrdtitle());
solrDoc.addField("memo", param.getBrdmemo());
Collection<SolrInputDocument> solrDocs = new ArrayList<SolrInputDocument>();
solrDocs.add(solrDoc);
try {
SolrJDriver.solr.add(solrDocs);
SolrJDriver.solr.commit();
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
7. gu.board 의 BoardSvc 클래스에서 글을 저장하는 deleteBoardOne 메소드에 다음 코드를 입력한다. 아래 코드로 색인된 데이터의 삭제가 가능하다.
try {
SolrJDriver.solr.deleteById(param);
SolrJDriver.solr.commit();
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
결과
데이터 색인
1. project9에 게시판->일반게시판->글쓰기 에서 글을 입력한다.
2. Solr Admin 의 test의 query 메뉴에서 색인된 데이터를 확인한다.
색인된 데이터의 수정과 삭제 또한 위의 과정으로 확인이 가능하다.
'검색엔진 > Solr' 카테고리의 다른 글
5. 검색 - 한글분석기 (0) | 2017.02.08 |
---|---|
4. 색인 (2) - Mysql DB 색인 ( data-import handler ) (1) | 2017.02.08 |
2. Core 생성 (0) | 2017.02.08 |
1. Solr 설치 및 준비 (1) | 2017.02.07 |