Django Haystack с Whoosh: игнорировать символы при индексировании/поиске

Я использую стог сена и свист, чтобы обеспечить поиск на моем сайте, однако мне нужно индексировать слова, которые имеют квадратные скобки или другие символы в середине слов (например, fo[oba]r) - есть способ чтобы либо индекс игнорировал эти символы (и индексировался как «foobar»), либо разрешал их при поиске? Могу ли я сделать это с помощью Whoosh или лучше использовать другой бэкэнд?


person FMcC    schedule 03.12.2012    source источник


Ответы (1)


Есть несколько способов реализовать это — в основном, вам нужно удалить квадратные скобки в проиндексированном содержимом, и один из способов сделать это — написать метод в вашей модели, чтобы возвращать измененное содержимое для поля, которое вы повторно индексировать, а затем использовать это в своем шаблоне поиска.

person Greg    schedule 05.12.2012
comment
Спасибо за это. Повлечет ли это за собой создание второго поля для хранения разделенного содержимого или просто метода доступа к нему? Есть ли способ отобразить исходный контент в выделенном месте после выполнения поиска? - person FMcC; 06.12.2012
comment
Никаких дополнительных полей, просто метод, к которому вы можете получить доступ в своем шаблоне. Вы можете отобразить исходный текст на странице результатов, просто обратившись к модели или сохранив оригинал в поле вашего индекса. Не уверен насчет выделения извините - я никогда не использовал его со стогом сена. - person Greg; 06.12.2012