2011-02-24 4 views
3

제목은 모두 묻습니다 ... 나는 Lucene에서 여러 분야 구문 검색을하고 싶습니다. 어떻게해야합니까?다중 필드 수행 방법 - Lucene에서 구 검색?

예를 들어

: 내가 그것을 어떻게해야합니까 .. String s[] = {"title","author","content"};
등의 분야는 내가 모든 필드에서 harry potter를 검색 할습니까?

예제 스 니펫을 제공해 주실 수 있습니까? 사용 MultiFieldQueryParser

답변

4
  1. , 여러 필드를 검색 쿼리를 구성의 QueryParser..

  2. 다른 방법은 TermQurey (귀하의 경우 문구 쿼리에서)로 구성된 BooleanQuery를 작성하는 것입니다.

  3. 세 번째 방법은 default 콘텐츠 필드에 다른 필드의 콘텐츠를 포함시키는 것입니다.


는 일반적으로 여러 분야에 대한 질의, 말하기 추가하지 사용자가 입력 한 검색어에 대한 가장 좋은 방법. 일반적으로 검색하려는 모든 단어는 다양한 필드를 결합하여 내용 또는 키워드 필드에 색인됩니다.


업데이트

사용법 :

Query query = MultiFieldQueryParser.parse(Version.LUCENE_30, new String[] {"harry potter","harry potter","harry potter"}, new String[] {"title","author","content"},new SimpleAnalyzer()); 
IndexSearcher searcher = new IndexSearcher(...); 
Hits hits = searcher.search(query); 

MultiFieldQueryParser이 방법으로 쿼리를 해결할 수 :

지정된 필드에 검색 쿼리를 구문 분석 (Javadoc을 참조). X 필드는 가 지정된 경우,이 효과적으로 구조 :

(필드 1 : 쿼리 1) (FIELD2 : 쿼리 2) (FIELD3 : QUERY3) (fieldx : queryx)이 도움이

희망.

+0

3 번째 옵션은 나에게 옵션이 아닙니다. , 질문에있는 예제는 더미입니다 ... 내 애플 리케이션의 제약으로 인해, 나는 결합되지 않는 필드가 필요합니다 ... – Shrinath

+0

두 번째 옵션은 무엇입니까 ... 두 번째 옵션 !!! MultiFieldQueryParser에 관심이 있습니다. 그 일을하고 있지만 오류가 발생했습니다. 이동하는 방법이 될 것 같아요 ... – Shrinath

+0

ADD에 관해서는 좋은 조언을 명심하십시오. 고마워요 :) – Shrinath