Запрос фильтра на основе результата проверки орфографии Solr
Я реализовал компонент Solr SpellCheck на основе документа из http://wiki.apache.org/solr/SpellCheckComponent , это хорошо работает. Но я пытаюсь отфильтровать результат проверки орфографии на основе какого-то другого фильтра. Рассмотрим следующую схему
product_name
product_text
product_category
product_spell -> copy string from product_name and product_text . And tokenized using white space analyzer
Для приведенной выше схемы я пытаюсь отфильтровать результат проверки орфографии на основе предоставленной категории. Я попытался спросить, как http://127.0.0.1:8080/solr/colr1/myspellcheck/?q=product_category: 160%20appl&spellcheck=true&spellcheck.extendedResults=true&проверка орфографии.collate=true . Проверка орфографии результатов не учитывает product_category:160
Это потому, что словарь был построен для всех категорий? Если да, то стоит ли создавать словарь для каждой категории?
Нельзя ли установить другое условие фильтра в компоненте проверки орфографии?
Я использую solr 3.5
1 ответ:
Я ранее понял из вопроса SOLR-2010 , что фильтрация через параметр
fq
должна быть возможна с помощью сортировки, но это не так, я думаю, что неправильно понял.Фактически,
SpellCheckComponent
имеет, скорее всего, отдельный индекс, за исключением реализацииDirectoSolrSpellChecker
. Это означает, что выбранное вами поле индексируется в другом индексе, который содержит только информацию о том конкретном поле, которое вы выбрали для исправления орфографии.Если вам интересно, вы также можете иметь посмотрите, как выглядит этот дополнительный индекс, используя luke, так как это, конечно, индекс lucene. К сожалению, фильтрация с использованием других полей там не предусмотрена, просто потому, что там есть только одно поле, которое вы используете для исправления орфографии.