Стоп-слова Solr отображаются в результатах поиска фасетов

В настоящее время я тестирую поиск фасетов в текстовом поле в моей схеме Solr и заметил, что получаю значительное количество результатов, которые находятся в моем файле stopwords.txt.

Моя схема в настоящее время использует конфигурацию по умолчанию для текстового типа данных, и у меня сложилось впечатление, что стоп-слова не индексировались, если использовался фильтр «solr.StopFilterFactory».

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

Спасибо!


person Jason Palmer    schedule 22.05.2011    source источник
comment
вы не должны использовать токенизированные поля   -  person Mauricio Scheffer    schedule 23.05.2011
comment
Здравствуйте, у меня такая же проблема/ситуация. Мои ключевые слова частично объединены в одно поле — пример car/dog/red/be/at next field: blue/green/yellow и т. д. Поэтому мне приходится использовать токенизнер, чтобы разбить строку на слова: ‹tokenizer class=solr.PatternTokenizerFactory узор=/ /›. Кроме того, я использую список стоп-слов для удаления стоп-слов (например: at, be,...). Но стоп-слова также индексируются и сохраняются и будут возвращены при поиске по фасету... с использованием Sol 1.3. Есть ли какое-либо обходное решение для этого?   -  person The Bndr    schedule 15.06.2011


Ответы (1)


Стоп-слова применяются к аспектам. Другими словами: если вы запрашиваете аспект поля, которое было проиндексировано стоп-словами, вы не должны видеть никаких стоп-слов в аспекте.

Я предполагаю, что вы не индексируете так, как вы думаете: либо ваш файл schema.xml неверен, либо вы индексируете другое поле, чем вы думаете.

Я использую фасеты в этом поле и хорошо работаю:

<fieldType name="text_ws_stop" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.StopFilterFactory"
    ignoreCase="true"
            words="stopwords_spanish.txt"
            enablePositionIncrements="true"
    />
  </analyzer>
</fieldType>

...

<field name="phrases" type="text_ws_stop" indexed="true" stored="true" required="false"/>
person Hugo Zaragoza    schedule 23.05.2011
comment
Мой тип текстового поля использует то же (немодифицированное) объявление, что и стандартная схема solr 3.1. Маурисио (выше) упомянул, что токенизированные поля могут вызвать проблемы со стоп-словами и фасетами. Тип текстового поля по умолчанию имеет токенизатор пробелов. Любые мысли о том, может ли это вызвать проблему? - person Jason Palmer; 24.05.2011
comment
Я использую токенизированные поля со стоп-словами и работает для меня... Я добавил часть schema.xml в свой ответ - person Hugo Zaragoza; 28.05.2011