2012-12-31 3 views
0

Solr을 사용하여 나의 카탈로그의 제품을 검색하고 있습니다. "Books"카테고리의 제품에 대해서는 점수를 낮추기 위해 노력하고 있지만 성공하지는 못했습니다. "Books"카테고리의 결과를 필터링하려고했지만 여전히 그 결과를 얻었으므로 잘못된 것을하고 있다고 생각했습니다. 범주 필드의 색인이 생성됩니다. 나는 또한 부정적인 영향을 BF 매개 변수를 사용하여 시도특정 카테고리의 Solr 점수 감소

http://localhost:8080/solr/collection1/query?q=iphone+4s&rows=4&fq=price:[*+TO+500]&debugQuery=on&fq=not(query(category:Books)) 

"책"에 아직도 행운과 :

내가 만든 요청을 한 시도 (다른 많은 시도 중)입니다.

"서적"과 다른 카테고리가있을 때 점수를 줄이려면 어떻게해야합니까? 특정 카테고리로 결과를 필터링하려면 어떻게합니까?

답변

1

당신은 귀하의 요청에 다음 코드를 추가 할 시도 할 수 있습니다 : -

&bq=(*:* -category:Books)^1000000 

수 백만는 카테고리가 도서없는 경우에는 레코드를 높일 것입니다 매우 큰 수를 지정합니다.

그래서, 코드가된다 : -

특정 범주로 필터링 결과
http://localhost:8080/solr/collection1/query?q=iphone+4s&rows=4&fq=price:[*+TO+500]&debugQuery=on&bq=(*:* -category:Books)^1000000 

는 귀하의 요청에 다음 코드를 추가합니다 -

&fq=category:Books 

위의 경우 카테고리 모든 레코드를 표시합니다 책입니다.

카테고리가없는 책 모든 기록을 얻기 위해, 다음을 시도 : -

&fq=(*:* -category:Books) 
+0

감사합니다! 위대한 작품! 여러 카테고리에서 어떻게 할 수 있습니까? 책이나 잡지가 아닌가? 간단히 bq = (* : * - 카테고리 : Books OR Magazine)^1000000 – ItayD

+1

을 위해 여러 bq 매개 변수를 추가해야합니다. & bq = (* : * - 범주 : 책)^100000 & bq = (* : * - 범주 : 매거진)^1000000 – Max

관련 문제