Мультиязычный полнотекстовый поиск, включая stemming в Django / Python - PullRequest
1 голос
/ 01 февраля 2012

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

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

1 Ответ

0 голосов
/ 08 февраля 2012

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

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

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

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

...