Запрос фильтра на основе результата проверки орфографии 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 5

1 ответ:

Я ранее понял из вопроса SOLR-2010 , что фильтрация через параметр fq должна быть возможна с помощью сортировки, но это не так, я думаю, что неправильно понял.

Фактически, SpellCheckComponent имеет, скорее всего, отдельный индекс, за исключением реализации DirectoSolrSpellChecker. Это означает, что выбранное вами поле индексируется в другом индексе, который содержит только информацию о том конкретном поле, которое вы выбрали для исправления орфографии.

Если вам интересно, вы также можете иметь посмотрите, как выглядит этот дополнительный индекс, используя luke, так как это, конечно, индекс lucene. К сожалению, фильтрация с использованием других полей там не предусмотрена, просто потому, что там есть только одно поле, которое вы используете для исправления орфографии.