2017-09-19 4 views
0

Lucene.net에서 Kentico를 사용하고 있습니다. 필드에서 특정 값을 가진 결과를 높이려고합니다. 예를 들어필드 값 존재시 Lucene의 검색 결과 부스트

myfield:"myvalue"^2

불행히도이 검색어로 처리하고 어쨌든 (tfidf 등을 통해) 점수를 바꾼다.

값의 존재를 기반으로 결과를 증폭시키는 방법이 있지만 그 값을 검색 용어로 포함시키지 않을 수 있습니까?

갱신

그래서 나는, 해당 분야에서 어떤 식 으로든이 아니 검색 값을 그 값을 포함하는 레코드의 점수를 향상하고자합니다.

실제로 두 개의 인덱스를 사용하고 있으므로 특정 인덱스를 향상시킬 수 있습니까? 예를 들어, index-1의 항목은 index-2의 항목보다 약간 더 높은 점수를 갖습니다.

답변

0

"검색 조건"에이 필드를 추가 한 경우 뒤에서 "+" 그래서 lucene은 다음과 같이 렌더링됩니다 :

+(myfield:"myvalue"^2) 

다음 필드가 필요합니다.

스마트 검색 필터를 추가하고 값을 myfield:"myValue"^2으로 설정 한 다음 "조건부 필터"를 false로 설정하면 필자는 필히 테스트해야합니다 필터를 감추려면 <div style="display:none"></div>으로 감싸십시오.

결과를 지적하고 트릭을 수행하는지 확인하십시오!

+0

실제로이 코드를 백엔드에서 수행하므로 정확한 구문을 제어 할 수 있습니다. 문제는''myfield : "myvalue"'''(boost를 쓰지 않고)'''''''''''''''''''''''''''을 여전히 포함함으로써 더욱 그렇습니다. 그 말은 그 열에 희귀 한 myvalue입니다. 나는 단지 그 기록 점수를 높이고 싶다. 왜냐하면 그 기록 값은 명시된 부스트 값이 아닌 기록보다 높기 때문이다. – Sprintstar

+0

여러 번의 부스팅을 할 수 있습니다. 1 차 검색을 부스트 2로 설정 한 다음 부스트 0.5로 설정하고 원하는 것을 수행 할 때까지 조정하십시오. –

+0

내가 원하는 것을 실제로하는 방법이 없다는 것을 말하고 있습니까? 가치의 존재에 의해 결과를 증폭 시키지만, 그 가치를 검색 가치만큼 득점합니까? – Sprintstar