2009-09-30 2 views
2

다음 코드를 가지고 있으며 귀하의 조언에 감사드립니다.Lucene (Java) - 프로그래밍 방식으로 기본 검색 필드를 지정하는 방법?

QueryParser queryParser = new QueryParser(searchTerm, analyzer); 
    Query query = queryParser.parse(searchTerm); 

첫 번째 질문은 "이중화"입니까? parse() 메서드뿐만 아니라 생성자에서도 "검색 할 문자열 (= searchTerm)"이 있습니다. 이것은 정말로 필요한 것입니까? (추가 사용을 위해 나는 Query 객체가 필요하다). 내가 이런 식으로한다면, 어쩌면 부정적인 부작용이 생기는 것일까?

그리고 프로그래밍 방식으로 검색 할 "기본 필드"를 지정할 수 없습니다. 내 쿼리에서는 "content : House"라고 쓰고 "content"필드를 검색합니다. 그러나 이것을 어떻게 프로그래밍 방식으로 지정할 수 있습니까? "content :"가 기본 필드이고 사용자가 "하우스"만 입력하면됩니다 (그러면 lucene은 "content"필드에서 자동으로 검색합니다).

는 너무 감사

1월

+0

만큼 내가 아는 한 그런 옵션 –

답변

5

QueryParser 생성자 에 첫 번째 인수는 javadoc에가 분명하지 않은 경우에도 기본 검색 필드입니다.

QueryParser queryParser = new QueryParser("content", analyzer); 
Query query = queryParser.parse(searchTerm); 
+0

안녕하세요 skaffman 없다 :

그래서 당신이 원하는. 도와 줘서 고마워! 옌스 –

관련 문제