Class DefaultSearchClient

java.lang.Object
com.easydesk.lucene.DefaultSearchClient
All Implemented Interfaces:
IndexConstants, Indexer, LocalSearchable, Searchable

public class DefaultSearchClient extends Object implements LocalSearchable, Indexer
같은 JVM 의 SearchService 를 사용하는 client.

기존 Avalon DefaultSearchClient 를 대체한다. Avalon ServiceManager.lookup(SearchService.ROLE) 대신 생성자로 SearchService 를 주입받는다.

Author:
조 영 호
  • Constructor Details

    • DefaultSearchClient

      public DefaultSearchClient(SearchService searchService)
      Creates a new DefaultSearchClient.
      Parameters:
      searchService - search service
  • Method Details

    • getSearcher

      protected SearchService getSearcher()
      Returns:
      search service
    • isLocal

      public boolean isLocal()
      Description copied from interface: Searchable
      서버가 Local 인지 아니면 Remote 인지
      Specified by:
      isLocal in interface Searchable
      Returns:
      local 이면 true
    • getAnalyzer

      public org.apache.lucene.analysis.Analyzer getAnalyzer()
      Description copied from interface: Indexer
      Analyzer
      Specified by:
      getAnalyzer in interface Indexer
      Returns:
      analyzer
    • search

      public BitSet search(QueryInfo[] info, BitSet moduleFilter, String[] path) throws IOException
      Description copied from interface: Searchable
      search item
      Specified by:
      search in interface Searchable
      Parameters:
      info - query 정보
      moduleFilter - 검색이 허용된 module id 의 BitSet. null 이면 module filter 를 적용하지 않고, 비어 있으면 검색이 허용된 module 이 없으므로 결과가 없다. (기존 BitVector 를 대체)
      path - index path (index root 기준 상대 경로) 배열. * 는 경로 한 단계와 일치한다. (예: 모든 module 의 itemType 12 attribute index : */attribute/12)
      Returns:
      IndexConstants.ITEM_ID 를 수집한 BitSet
      Throws:
      IOException - search engine 오류
    • addDocument

      public void addDocument(Indexable indexable) throws IOException
      document 를 index 에 추가(교체)한다. document 가 null 이고 unique term 이 있으면 index 에서 제거한다.
      Specified by:
      addDocument in interface Searchable
      Parameters:
      indexable - index 대상
      Throws:
      IOException - index 오류
    • index

      public void index(Indexable indexable) throws IndexerException
      Description copied from interface: Indexer
      index 를 진행한다.
      Specified by:
      index in interface Indexer
      Parameters:
      indexable - index 대상
      Throws:
      IndexerException - index 오류