2014-10-02 5 views
0

다른 필드 (예 : 제목, 내용 등)에 "one two"라는 용어가 2 개 포함 된 문서를 찾고 있습니다. PyLucene의 예 :Lucene : 두 단어를 찾을 때 점수 증가

query = "one two" 
clauses = [] 
for field in fields: 
    clauses.append(BooleanClause.Occur.SHOULD) 

query = MultiFieldQueryParser.parse(Version.LUCENE_CURRENT, query, fields, clauses, analyzer) 

내가 ("하나"또는 "2")라는 용어를 포함하는 모든 문서를 얻을 좋아하고 것 ("하나"와 "이") 모두가 가야가 포함 된 문서 높은 점수. "one and two"또는 "one two"~ n과 같은 쿼리를 사용할 때 나는 그 문서 만 얻습니다.

여러 경기와 같은 것을 향상시킬 수있는 방법이 있습니까?

감사합니다. 당신이 특정 값 "하나 둘"에 의해 증폭를 찾고 있다면

+0

다른 필드에있는 하나의 두 개의 문서를 올리시겠습니까? – Mysterion

+0

아니요, 같은 분야의 두 용어로 문서를 강화하고 싶습니다. –

답변

0

, 당신은 근접 쿼리를 사용할 수는 당신이 뭔가를 할 것이다 자바 예를 들어 SpanNearQuery

http://lucene.apache.org/core/4_6_0/core/org/apache/lucene/search/spans/SpanNearQuery.html

에서 제공하는 승압 : ...

SpanTermQuery[] spanQueryClauses = new SpanTermQuery[terms.length]; 
for (int i = 0; i < terms.length; i++) { 
    spanQueryClauses[i] = new SpanTermQuery(terms[i]); 
} 
SpanNearQuery spanNearQuery = new SpanNearQuery(
       spanQueryClauses, slop, true); 
spanNearQuery.setBoost(2.0f);