Александр Кошелев
Александр Кошелев Python-разработчик

Djapian: версия 2.2

Очередной релиз Djapian подоспел.

Коротко расскажу о нововведениях:

  • Добавлена работа с транзакциями Xapian при обновлении индекса. Теперь, если в процессе индексирования какого-то объекта, произойдет ошибка, то он не оставить никаких следов в индексе. Чуть-чуть просела производительность индексирования.

  • Добавлена возможность использовать X объекты для фильтрации результатов. X объект - это аналог django.db.models.Q объектов, которые позволяют писать комплексные фильтры. Поддерживаются операторы И (&), ИЛИ (|) и отрицания(~). Пример:

     from djapian import X
    
     result_set = Article.indexer.search('foobar')\
              .filter(X(type='news') | (X(type='article') & X(tag='featured')))
    
  • У каждого результата поиска появился атрибут tags с полями данного документа, которые хранятся непосредственно в индексе. В некоторых случаях позволяет не вытягивать из базы данных сам объект, используя в отрисовке выдачи элементы из tags.

  • Исправлен баг с индексированием значений чисел с плавающей точкой.

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

comments powered by Disqus