2012-01-31 5 views
1

В настоящее время мы используем Djapian + Xapian в наших многоязычных проектах на основе Django для полнотекстового поиска. Чтобы использовать вывод для каждого языка, мы создаем другой индекс поиска для каждого языка. Внутри Django мы решаем на основе пользовательского языка, который возникает и какой индекс поиска используется. Это работает отлично, однако, Джапиан, похоже, больше не поддерживается, и код разрастается все больше и больше. Поэтому мы переключились на стог сена, но стог сена, похоже, не предлагает такого динамического роста, которое нам нужно.Многоязычный полнотекстовый поиск, включая создание в Django/Python

Есть ли способ интегрировать эту возможность, либо в сенате версии 1.x, версии 2.x, либо в любом другом бэкэнде на основе Python/Django?

ответ

0

Итак, насколько я понимаю, вы можете правильно проиндексировать контент, но не искать его с помощью правильного стволового устройства? Или вы хотите изменить штокмер при индексировании, а также в поиске?

Xapian-стог установит забойный язык, основанный на settings.HAYSTACK_XAPIAN_LANGUAGE по умолчанию, однако для поиска, когда вы создали экземпляр в SearchBackend экземпляре вы должны быть в состоянии установить SearchBackend.language перед созданием поиска, чтобы изменить забойный язык.

Обратите внимание, что я не пробовал это вообще, я только что посмотрел the code on github.

Кроме того, я должен отметить, что, хотя стог сальника велик, иногда лучше просто использовать xapian напрямую. Это достаточно хорошо документировано, и для сложных, xapian-функций он может быть быстрее и проще. Очевидно, это не так, если у вас уже есть приложение, но это стоит того, если вы только начинаете. :)

+0

Привет, Сим, спасибо за подсказку. К сожалению, для того, чтобы заставить работать правильно, сам индекс также должен быть устранен. На данный момент исправление Djapian - это самое простое решение, но как долго ...: -P Я буду более подробно изучать необработанный Xapian и опубликовать любой хороший ответ, который я придумал. –