Я использую компонент Solr Suggestester и задавался вопросом, могут ли результаты быть отфильтрованы параметром fq
. У меня есть запрос, как это:Запрос фильтра Solr для справочника
http://localhost:8982/solr/core1/suggest?q=shirts&fq=category_id%3A321&wt=json&indent=true&spellcheck=true&spellcheck.build=true
Здесь я пытаюсь получить некоторые предложения для q=shirts
. Я хочу отфильтровать это на fq=category_id:321
, так что я не получаю предложения из других категорий. Потому что категория с category_id:321
не имеет продуктов, связанных с shirts
, она не должна возвращать какие-либо предложения. Но это так. И когда вы пытаетесь найти это предложение, он ничего не находит, потому что «оригинальный» поиск фильтруется с параметрами fq=...
.
Я нашел что-то с collate
здесь http://wiki.apache.org/solr/SpellCheckComponent#spellcheck.collate. Он сопоставляет мои результаты, но также возвращает предложения для shirts
.
Итак, мой вопрос в том, является ли подсказщик (или, в основном, SpellCheckerComponent) осведомленным о параметре fq, и как я могу использовать этот параметр для фильтрации предложений (или на более позднем этапе - исправления правописания).
РЕДАКТИРОВАТЬ
я выяснил, что «нормальный» компонент орфографии (например, с классом solr.IndexBasedSpellChecker
, например), действительно имеет параметр fq
во внимание. Я могу установить
<str name="spellcheck.collate">true</str>
<str name="spellcheck.collateExtendedResults">false</str>
и предложение для shitr
не возвращается при фильтрации по определенной категории идентификатор, где ключевое слово shirt
нет.
Мне интересно, почему это не работает с компонентом-предложением. Есть идеи?
Спасибо за ваш ответ. Учитывает ли значение 'extendedResults' значение' fq'? Скажем, я отфильтровываю свой запрос по категории 1, советник возвращает некоторые значения, но поле 'extendedResults' говорит, нет ли каких-либо значений для вашего текущего запроса? – 23tux