2011-02-18 2 views
0

lucene3.0.3 | 검색 기준에 여러 개의 부울 쿼리가있는 경우 올바른 문서를 얻습니다.

같은 쿼리를 사용하고 있습니다.

criteria = (sql OR sqlserver OR "sql server") AND java AND delphi . 

이 경우 기본 파서를 아래 코드 언급과 같이 사용하고 있습니다.

QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, field, analyzer); 
Query query = parser.parse(criteria); 

QueryParser.OR_OPERATOR를 사용할 때 문서의 수가 같아요. 아래 코드에서 :

QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, field, analyzer); 
parser.setDefaultOperator(QueryParser.OR_OPERATOR); 
Query query = parser.parse(criteria); 

가 올바르지 않습니다. 제발! 실현 가능한 해결책을 제안 해주십시오.

검색 조건에 여러 개의 부울 쿼리가있는 경우 올바른 문서를 얻는 방법은 무엇입니까?

답변

0

당신은에하지 않았다 같이

가 (SQL 또는 SQLSERVER OR "SQL 서버") 및 Java 및 델파이가

다음 기본 설정 운영자가 아니오 =이 기준 효과.

기준 = (SQL SQLSERVER는 "SQL 서버") 자바 델파이

다음에 기본 연산자를 설정하거나 쿼리를 야기은 다음과 같이 해석 : 당신이 한 경우 다음과 같이 대신 쿼리를 지정 :

기준 = (SQL 또는 SQLSERVER 또는 "SQL 서버") 그런데 또는 Java 또는 델파이

, 기본 연산 QueryParser에 대한 해지 전에 중대한 위반 사항을 시정는 OR - 코드에서 Lucene QueryParser javadoc

+0

재생 해 주셔서 감사합니다. 내 질문은 올바른 방법으로 문서를 가져올 수있는 방법입니다. 쿼리 문자열 (기준)에 AND와 OR가 동시에 포함될 때 – ranjit

0

를 참조하십시오 쿼리는 필드는 용어 "자바"와 "델파이"하나 또는 {SQL, SQLSERVER "의 내용을 포함하는 인덱스에있는 모든 문서를 검색 SQL 서버 "}. 당신이 제시 한 것과 구문 적으로나 개념적으로 잘못된 것은 없기 때문에 문제는 그 필드가 어떻게 색인되어 졌는지에 관한 것입니다. Luke을 선택하여 색인을 분석하는 것이 좋습니다.

관련 문제