2009-08-28 2 views
2

검색을 실행하기 전에 Query 개체로 필드의 부스트를 조정할 수 있습니까? 올바른 방법은 색인 생성 중에 필드 높이기를 변경하는 것이지만 색인을 만드는 데는 약 4 일이 걸리며 지금까지 할 수있는 빠른 해킹이 있는지 궁금합니다.검색시 필드에 lucene 세트 부스트

내가 검색 쿼리에 부스트에 하드 코딩 시도, 즉 및 필드 (이 다른)^7

및 그 작동하고, 내가 감소 할 경우를 제외하고는, 그것의 끝이 될 것입니다 쿼리의이 부분의 관련성은 나는^(이 다른)

및 필드

을합니다. 1

하지만 난 빈 결과를 얻을 수 있습니다.

감사

+0

괜찮습니다. 두 번째 부분이 있습니다. 앞에 0이 나오야합니다. 즉 0.1이 아닙니다 .1 –

답변

2

당신은 유사성을 확장하고 검색 자에 유사성을 확장함으로써

setSimilarity(Similarity) 

을 사용할 수 있습니다, 당신은 여러분의 필요에 루씬에서 득점 메커니즘을 적용 할 수 있습니다.

편집 :

public float lengthNorm(String fieldName, int numTokens){ 
    return fieldWeights.get(fieldName)*super.lengthNorm(fieldName, numTokens); 
} 

fieldWeights 당신이 원하는 무게를 지정하는지도 속성 수 :

구체적

, 당신은 유사성의 lengthNorm 방법 (또는 그 서브 클래스)를 대체 할 수 있습니다 각 분야에 붙이십시오. fieldWeights에 대한 참조를 어딘가에 보관하면 필드 가중치를 검색을 수행하기 직전의 원하는 값으로 변경할 수 있습니다 (단, 한 번에 하나의 쿼리 만 수행하여 실험하십시오).

0

높은 값으로 원하는 용어를 부스트하고 0으로 부스트를 해제하려는 것은 그대로 두지 않는 이유는 무엇입니까?