История до сих пор:
Решили использовать Xapian в качестве бэкэнда поиска, потому что он имеет все функции поисковой системы, которые я искал, знает о Unicode, основах, имеет мало зависимостей и не требует никакой раздутой установки сервера приложений поверх него.
Попробовал Django и Haystack (плюс xapian-haystack, бэкэнд-код для связывания Haystack с Xapian), потому что он рекламировался в некоторых блогах как «работающий». Не работал. Ни django-haystack, ни проект xapian-haystack не предоставляют комбинацию версий, которая фактически работает вместе. MASTER из обоих проектов выдает ошибку из Xapian, так что она вообще не стабильна. Haystack 1.0.1 и xapian-haystack 1.0.x / 1.1.0 не совместимы с API. Кроме того, в минимально работающей установке Haystack 1.0.1 и xapian-haystack MASTER любой сложный запрос дает нулевые результаты из-за ошибок либо в django-haystack, либо в xapian-haystack (я проверял это дважды), возможно, из-за модульных тестов. на самом деле тестируют очень простые случаи, а не крайние случаи вообще.
Пробовал Джапиана. Исходный код изобилует орфографическими ошибками (имейте в виду, в именах переменных, а не в комментариях), документация также изобилует двусмысленностью и устаревшей информацией, которая никогда не приведет к работающей установке. Неудивительно, что пользователи редко спрашивают о возможностях, но как заставить их работать.
Далее на планшете: изучение Solr (установка среды Java плюс Tomcat доставляет мне головную боль, машина ограничена в ОЗУ и ЦП) или Lucene (немного меньше головной боли, но все же).
Прежде чем я продолжу тратить больше времени на решение, которое может работать, а может и не работать так, как рекламируется, я хотел бы знать: кто-нибудь когда-либо получал реальное, реальное решение для поиска, работающее в Django? Я серьезно. Я нахожу действительно разочаровывающим чтение о «больших проблемах, в основном решаемых», а затем осознавая, что вы никогда не получите работающую установку из исходного кода, потому что, фактически, все блоггеры, занимающиеся этими «в основном решенными проблемами», никогда не проходили базовую установку и скопируйте официальные учебники.
Итак, вот требования:
- должен уметь искать 10-100 терминов в одном запросе
- должен обрабатывать + (термин должен присутствовать) и - (термин не должен присутствовать), И / ИЛИ
- должен обрабатывать произвольную группировку (т. Е. Круглые скобки вокруг И / ИЛИ)
- должен допускать фильтрацию Django-ORM до или после полнотекстового поиска (т. Е. До / постобработка результатов с полным набором фильтров, о которых Django знает)
- в качестве альтернативы, должна быть возможность массового извлечения набора результатов и преобразования его в QuerySet
- должен быть легким на машине, поэтому желательно не устанавливать JVM и сервер приложений на базе Java
Есть ли что-нибудь, что делает это? Меня не интересуют анекдотичные доказательства или ссылки на некоторые посты в блогах, которые утверждают, что это должно работать. Я хотел бы услышать от кого-то, у кого действительно есть полностью функциональная установка, работающая в реальном мире, в реальных условиях, с реальными запросами.
EDIT:
Позвольте мне еще раз повторить, что меня не очень интересуют неподтвержденные свидетельства того, что у кого-то где-то есть несколько запущенная установка, работающая с неопределенными свойствами. Я уже пошел туда, я прочитал все посты в блоге, списки рассылки, я связался с авторами, но когда дело дошло до реальной реализации сценариев реального мира, ничто так и не сработало, как рекламировалось.
Кроме того, и пользователь ниже также поднял эту точку зрения, учитывая совокупную стоимость владения любого проекта, я определенно не заинтересован в том, чтобы услышать, что кто-то где-то смог осуществить его, как только поставщик прыгнул с парашютом в неизвестном количестве. Специалисты могут обезопасить всю установку с помощью специальных знаний предметной области, которые нигде не описаны.
Итак, пожалуйста, если вы утверждаете, что у вас есть работающая установка, которая фактически удовлетворяет минимальным требованиям для полноценного поиска (см. Требования выше), пожалуйста, предоставьте следующее, чтобы мы все могли воспользоваться преимуществами поискового решения для Django, которое фактически решает проблему:
- точный дистрибутив Linux, релизная версия,
- точная версия Haystack (или эквивалент) и версия поискового бэкэнда,
- точная версия поисковой системы
- общедоступная (!) Доступная документация о том, как настроить все компоненты точно так же, как ваша установка, чтобы были соблюдены минимальные требования, указанные выше.
Спасибо.