#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 часть моего ответа