2010-06-05 4 views
4

Я использую Solr для поиска и недавно начал использовать огранку, чтобы пользователи могли сузить свой поиск. Однако, как только пользователь фильтрует один из фасетов, другие параметры фильтра больше не возвращаются в результатах фасет. Это ожидается, но не то, что я хотел бы.Solr - получение граней для нефильтрованной версии запроса

Есть ли способ вернуть поля фасет и считать нефильтрованный запрос, не делая дополнительного поиска? Например, если пользователь фильтрует по категориям (выбрав определенную категорию), я бы хотел, чтобы они все еще могли выбирать одну из других категорий без явного удаления фильтра в первую очередь. (То есть все категории и их подсчеты все равно должны быть возвращены Solr, так что я могу включить их на странице вместе с фильтрованным набором запросов.)

Я подозреваю, что это может быть невозможно. Если это не так, я могу просто выполнить дополнительный запрос для поиска, который не учитывал бы фильтр (и возвращал бы 0 строк), как описано в a previous StackOverflow question. Но я думал, что спрошу: кто-нибудь знает способ сделать это без нескольких запросов?

ответ

8

Это называется многосекундной огранкой, и для исключения фильтров при огранке можно использовать определенные LocalParams. См. "Tagging and excluding Filters".

+1

+1 вот еще две интересные ссылки: http://www.craftyfella.com/2010/01/faceting-and-multifaceting-syntax-in.html http://wiki.apache.org/solr/LocalParams – Karussell

 Смежные вопросы

  • Нет связанных вопросов^_^