Стоп-слова Solr, отображаемые в результатах фасетного поиска

#solr #facet #stop-words #facets

#solr #стоп-слова #фасет

Вопрос:

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

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

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

Спасибо!

Комментарии:

1. вы не должны фасетировать маркированные поля

2. Привет, у меня такая же проблема / ситуация. Мои «ключевые слова» частично объединены в один файл — например, «автомобиль / собака / красный / быть / на», следующий файл: «синий / зеленый / желтый» и т.д. Итак, я должен использовать tokenizner, чтобы разбить строку на слова: <tokenizer class=»solr. PatternTokenizerFactory» шаблон=»/» />. Кроме того, я использую список стоп-слов для удаления стоп-слов (например: at, be, …), Но стоп-слова также индексируются и сохраняются и будут возвращены при фасетном поиске… при использовании Sol 1.3 есть ли какой-либо обходной путь для этого?

Ответ №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"/>
  

Комментарии:

1. В моем типе текстового поля используется то же (неизмененное) объявление, которое поставляется со схемой solr 3.1 по умолчанию. Маурисио (выше) упоминал, что маркированные поля могут вызывать проблемы со стоп-словами и фасетами. Тип текстового поля по умолчанию содержит маркер пробела. Есть мысли о том, может ли это вызвать проблему?

2. Я разбиваю маркированные поля на стоп-слова, и у меня это работает… Я добавил schema.xml часть моего ответа