Как исключить поле диапазона фасетов с помощью SOLR?

0

У меня есть поле product_rating в 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>

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

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

q=*&fq={!tag=dt}product_rating:[4%20TO%205]&facet.field={!ex=dt}product_rating
Теги:
elasticsearch
solr
lucene

1 ответ

0
Лучший ответ

Это работает так, как вы пробовали, и, как говорится в руководстве, но вы должны помнить, что используете facet.range чтобы 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 <lst name="facet_counts"> <lst name="facet_queries"> <int name="product_rating:[4 TO 5]">864</int> <int name="product_rating:[3 TO 5]">1548</int> <int name="product_rating:[2 TO 5]">1935</int> <int name="product_rating:[1 TO 5]">2186</int> </lst>
  • 0
    Я использовал приведенный ниже запрос q=*&rows=0&facet=true&facet.query={!ex=dt}product_rating&fq={!tag=dt}product_ra‌​ting:[1%20TO%205] и я получаю <int name="product_rating:[4 TO 5]">0</int> <int name="product_rating:[3 TO 5]">0</int> <int name="product_rating:[2 TO 5]">0</int> <int name="product_rating:[1 TO 5]">2186</int> . Помогите плз
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню