Solr Spell Check основанный на результатах запрос фильтра
Я реализовал Solr SpellCheck Component на основе документа 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&spellcheck.collate=true. Результаты проверки правописания не учитывают товарную категорию: 160
Это потому, что словарь был построен для всех категорий? Если так, то стоит ли создавать словарь для каждой категории?
Разве невозможно иметь другое условие фильтра в компоненте проверки орфографии?
Я использую Solr 3,5
1 ответ
Я ранее понял из проблемы SOLR-2010, что фильтрация через fq
Параметр должен быть возможен с использованием сопоставления, но это не так, я думаю, что я неправильно понял.
На самом деле, SpellCheckComponent
имеет, скорее всего, отдельный индекс, за исключением DirectoSolrSpellChecker
реализация. Это означает, что выбранное вами поле индексируется в другом индексе, который содержит только информацию об этом конкретном поле, которое вы выбрали для исправления орфографии.
Если вам интересно, вы также можете посмотреть, как выглядит этот дополнительный индекс, используя luke, поскольку это, конечно, индекс lucene. К сожалению, фильтрация с использованием других полей здесь невозможна, просто потому, что там есть только одно поле, которое вы используете для исправления орфографии.