2011-07-01 6 views
2
내가 좋아하는 파일에서이 쿼리를 읽고있다

,루씬 쿼리는

Query q1 = new QueryParser(Version.LUCENE_CURRENT, "id", analyzer).parse(dis.readLine()); 
Query q2 = new QueryParser(Version.LUCENE_CURRENT, "id", analyzer).parse(dis.readLine()); 

을 증폭 나는이 쿼리가 2 즉의 Q2를 조회하는 쿼리로 결합 (5 말) 어떤 활력을 불어 넣을 수 싶어요. 쿼리를 올리거나없는 경우

감사합니다,
라비

답변

0

는 잘 모르겠어요. 예를 들어 색인을 만들 때 필드를 늘릴 수 있다는 것을 알고 있습니다.

Field field = new Field("id", id, ......); 
field.setBoost(0.5); 

지금까지 그 2 개 쿼리 결합으로 :

String term = dis.readLine() + " AND " + dis.readLine(); 

또는 그 효과에 뭔가 ..... 나는이 일을한다고 생각

+0

문자열 용어 = dis.readLine() + "AND"+ dis.readLine()은 실제로 문자열을위한 것으로,이 문자열을 구문 분석 할 수 있습니다. 하지만 내가 필요로하는 것은 2 개의 질의 Q1과 Q2를 결합하는 것입니다. q1..setBoost (0.5)를 시도했지만 오류가 발생하지 않아 쿼리 부스팅이 가능합니다. 내가 부스트 쿼리를 결합하고 싶습니다. – ravi

1

:

q2.setBoost(5); 

BooleanQuery q3 = new BooleanQuery(); 
q3.add(q1, BooleanClause.Occur.SHOULD); 
q3.add(q2, BooleanClause.Occur.SHOULD); 

당신을 BooleanQueryq3을 사용하여 검색하십시오.

+0

감사합니다. 나는 Query q1 = 새로운 QueryParser (Version.LUCENE_30, "Id", analyzer) .parse (dis.readLine()); \t 쿼리 q2 = 새 QueryParser (Version.LUCENE_30, "Id", analyzer) .parse (dis.readLine()); \t \t \t q1.setBoost (5f); 쿼리 q = q1.combine (new Query [] {q2, q1}); – ravi

+0

이것이 실제로 작동하는지 확인할 수 있습니까? –