2016-02-24 1 views
0

Мы используем Solr для индексации некоторых описаний потребительских товаров, и наш лексический анализ показал, что можно отбросить слова с длиной < 4 (<filter class="solr.LengthFilterFactory" min="4" max="25" />). Мы смогли обеспечить лучшие результаты запроса.Используйте Solr Length Filter, но держите несколько слов

Однако у нас отсутствуют некоторые значимые слова, такие как GPS, LCD, LED, которые мы хотели бы сохранить.

Есть ли в Solr фильтр, имеющий такую ​​функциональность (отбросить короткие слова, но если он включен в список исключений, сохраните его)? Или мне нужно будет специализировать LongFilter для достижения того, чего я хочу?

Я также думал использовать SynonymFiler для «преобразования» токена (например: LCD => liquid_crystal_display) перед фильмом LengthFilter. Любые мысли об этом решении?

ТИА,

Боб

ответ

0

Ваш вопрос о снятии «почти» все слова в цепочке фильтров менее четырех букв.

Для этого можно использовать SynonymFilter. Вы даже могли использовать два синонимичных фильтра в цепочке. Прежде всего, чтобы слова были длиннее, а затем - вернуться к оригиналу. Недостаток: только с одним SynonymFilter вы не можете использовать подстановочные знаки, такие как LC?, потому что поиск по шаблону does not use the filter chain.

Другие возможности: используйте PatternReplaceFilter, чтобы заменить все ваши слова «коротким» словом и добавить StopFilter к вашей цепочке фильтров (возможно, достаточно замены с пустым словом).

Смежные вопросы