2015-01-22 2 views
0

У меня есть поле product_rating в Solr, который, как показано нижеКак исключить поле диапазона фасет с помощью SOLR?

<int name="product_rating:[4 TO 5]">6</int> 
<int name="product_rating:[3 TO 5]">8</int> 
<int name="product_rating:[2 TO 5]">9</int> 
<int name="product_rating:[1 TO 5]">14</int> 

Так что если я выбираю кого-нибудь из этого фильтра, я не хочу, чтобы изменить фасет count.But Если я выбрать любой фильтр, кроме product_rating I хочу изменить этот счетчик фильтров. Как это возможно? (На самом деле я хочу знать, как solr исключает работу в фасетном диапазоне). плз помочь :)

Я использовал этот запрос, но не работает

q=*&fq={!tag=dt}product_rating:[4%20TO%205]&facet.field={!ex=dt}product_rating 

ответ

0

Это работает, как вы уже пробовали и as the manual say с, но вы должны помнить, что вы используете facet.range указать свое имя поля - не facet.field.

facet.range={!ex=dt}id&..&fq={!tag=dt}id:[0 TO 100000] 

.. дает ожидаемый результат (где рассчитывает на грани не зависит от fq).

+0

Это кажется прекрасным. Поэтому, если я хочу сделать такой диапазон [1-5], [2-5], [3-5], [4-5], используя facet.range, как это возможно ?. Я сделал это с facet.query. Но исключение не работает с facet.query ' 864 1548 1935 2186 ' –

+0

Я использовал следующий запрос:' q = * & rows = 0 & facet = true & facet.query = {! Ex = dt} product_rating & fq = {! Tag = dt} product_ra ting: [1% 20TO% 205] 'и я get < 0 0 0 2186'. Plz help –

+0

Вы пропустили значение = после facet.range, и я использовал это также 'facet = true & facet.query = product_rating: [1% 20TO% 205] & facet.query = product_rating: [2% 20TO% 205]', но это также не работает. Я не получаю никаких фасетных запросов –