티스토리 뷰

검색엔진/Solr

3. 색인 (1) - SolrJ

AKhan 2017. 2. 8. 14:58


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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함