2015-01-15 1 views
0

Solr boost 함수 쿼리에서 조건을 사용할 수 있는지 확인하려고합니다. 지금, Likes 데이터를 높이기 위해 다음 함수를 사용하고 있습니다. 내가하고 싶은 무엇Solr : Boost 함수 쿼리에 조건을 추가하는 방법

bf=recip(ms(NOW/DAY,PublishDate),3.16e-11,1,1)^2.0 sum(Likes,2) 

몇 가지 조건에 따라 '좋아요'에 부스트를 적용하는 것입니다. 예 :

경우 원본 = "A"또는 "B"또는 "C"다음 SUM (좋아 4)

다른-IF 소스 다음 = "D"합 (좋아 3) 다른

합계 (Likes, 2).

"if"함수가 단일 조건에서만 작동하지만 if-else 조건을 처리하는 방법을 모르는 경우

if(termfreq(Source2,'A'),sum(Likes,3),0) 

성능 오버 헤드로 인해 중첩 된 쿼리를 피하려고합니다.

모든 포인터는 높이 평가됩니다.

고마워요,

Shamik

답변

1

좋아, 일부 연구 후에, 나는 올바른 구문을 발견했다.

if(termfreq(Source2,'A'),sum(Likes,3),if(termfreq(Source2,'B'),sum(Likes,3),0)) 

희망이 도움이됩니다.

+0

'termfreq' fq에서 와일드 카드를 사용하는 방법을 알고 있습니까? 그래서 당신은 "manager", "Manage", "Management"와 일치시키기 위해'termfreq (text, manage *)'를 사용할 수 있습니까? –