2016-11-27 1 views
0

나는 3 개의 브랜드가있는 2.5 L 제품을 보유하고 있습니다. 75 %, 20 %, 10 % 비율로 나누어 져 있습니다. 이제 solr에 대한 쿼리를 수행 할 때마다 나는 항상 75 % 브랜드 콜렉션에서 제품을 얻는 데 사용합니다. 다른 브랜드의 제품도 최상위 목록에 올 수 있도록 결과 세트를 임의 화하려고합니다.solr의 브랜드간에 결과 집합을 임의로 설정

+0

[Solr - 임의의 결과 반환 (임의로 정렬)] 가능한 복제본 (http://stackoverflow.com/questions/25234102/solr-return-random-results-sort-by-random) – root545

답변

0

두 가지 종류의 부스트가 있습니다.

  1. 색인 시간

    색인 시간이 부스트 문서를 추가 할 때 적용하고, 전체 문서 또는 특정 분야에 적용된다 향상 향상.

  2. 쿼리 시간이

    쿼리 시간 부스트가 검색 쿼리를 구성 할 때 적용하고, 특정 필드

브랜드의있다 brand_a, brand_b하자에 적용된다 향상 brand_c 및 브랜드 필드 이름은
입니다. brand_a가 1, brand_b가 2, brand_c가 3가됩니다.

쿼리 시간 부스트 :

brand:"brand_a"^1 OR brand:"brand_b"^2 OR brand:"brand_c"^3 

색인 시간 부스트 :

<add> 
    <doc boost="1"> 
    <field name="brand">brand_a</field> 
    ... 
    </doc> 
    <doc boost="2"> 
    <field name="brand">brand_b</field> 
    ... 
    </doc> 
    <doc boost="3"> 
    <field name="brand">brand_c</field> 
    ... 
    </doc> 
</add> 

당신은 당신의 필요 조건에 따라 위의 중 하나를 사용할 수 있습니다.

0

정말로 관련성을 완전히 무시하고 (100 %?) 사용자 검색과 일치하는 임의의 제품을 반환 하시겠습니까? 그렇게 할 수있는 임의의 필드가있을 수 있지만, 이것이 단기 솔루션이라고 생각됩니다.

예를 들어 브랜드별로 결과를 그룹화 한 다음 각 브랜드에서 상위 X 개의 결과를 반환하는 것이 더 좋습니까? Solr은 그것에 대해 Collapse and Expand 기능을 가지고 있습니다.

관련 문제