SOLR игнорирует запятую и другие знаки препинания при поиске

Я хочу найти 100 000 и 100 000, только запросив 100 000 (или только запросив 100 000).
Возможен ли такой поиск?

Цель выполнения этого состоит в том, что пользователь может добавить запятую в любом месте или вообще не запятую, но строки (100 000 или 100 000) должны быть найдены в любом случае...


person Umer    schedule 23.11.2010    source источник


Ответы (3)


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

person Joyce    schedule 23.11.2010
comment
согласен, кажется, нет другой возможности. - person Umer; 24.01.2011

Попробуйте использовать solr.WordDelimiterFilterFactory с catenateNumbers="1" в индексе и определении запроса вашего поля.

У вас есть несколько документов здесь: WordDelimiterFactory

person Juampa    schedule 24.11.2010

просто удалите , из запроса, если он находится в числе

(если вы используете java на клиенте -> проанализируйте число и выполните toString)

person Karussell    schedule 24.11.2010