blog-post

Manticore Search 3.5.2: оптимизированный OPTIMIZE, отдельный NOT, фацетирование через HTTP и многое другое

Мы рады сообщить, что Manticore Search 3.5.2 вышел!

Кроме 19 исправлений ошибок он вводит несколько приятных новых функций и изменений:

Более умный OPTIMIZE


Если вы используете реальное время индексы , вы знаете, что существует команда OPTIMIZE INDEX , которая выполняет сжатие индекса. Исторически это могло только объединять куски индекса в один. В 3.5.2 это изменено и теперь настраиваемо:

  • по умолчанию, конечное количество кусков равно 2 * # ядер CPU, что позволяет эффективно использовать несколько ваших CPU
  • для тонкой настройки поведения добавлена новая опция cutoff, которая позволяет продолжать объединение до тех пор, пока количество кусков не достигнет желаемого значения
  • 👷 Работа в прогрессе: еще более умный OPTIMIZE, который вам вовсе не нужно будет запускать внешне!

Отдельный оператор NOT


Оператор полнотекстового поиска NOT теперь может использоваться отдельно. По умолчанию он отключен, поскольку случайные одиночные запросы NOT могут быть медленными. Но если вы знаете, что делаете, вы можете включить его, установив новую директиву searchd not_terms_only_allowed в 0. Это решает задачу черного списка полнотекстового поиска, когда вы хотите найти все документы, кроме тех, которые содержат некоторые плохие слова. Это особенно полезно, когда используется как запрос на перколацию в Manticore Percolate Queries , так как это позволяет просто сохранить ваш “черный список” в виде набора запросов на перколацию и затем фильтровать все документы, содержащие их.

max_threads_per_query и OPTION threads


В 3.5.0 мы представили новый режим многозадачности, который основан на опции searchd.threads, ограничивающей максимальное количество потоков, которые Manticore Search может выделить для различных задач. Но если у вас слишком много кусков в реальном времени индексе или слишком распределенный индекс + высокий QPS, вы можете не пожелать позволять каждому запросу занимать все ваши threads. В 3.5.2 есть 2 новые опции:

  • max_threads_per_query для глобального ограничения
  • и SELECT ... OPTION threads=N для ограничения на уровне запроса

Аггрегации в HTTP протоколе


В Manticore 3.5.2 HTTP API /search получает базовую поддержку для фацетирования и группировки .

👷 Работа в прогрессе: добавьте эту функциональность к клиентам Manticore на основе HTTP ( php , python , javascript , java , elixir )

Порты репликации по умолчанию


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

Новая схема упаковки


С 3.5.2 теперь можно устанавливать/обновлять сервер Manticore Search и вспомогательные инструменты (индексатор, indextool и т.д.) отдельно. Это может быть особенно полезно для тех, кто использует обычные индексы и перед внедрением нового индексатора (который, возможно, изменяет формат индекса) хочет попробовать только searchd (который понимает старые форматы).

Новые названия пакетов - manticore-server и manticore-tools, и их можно установить через менеджеры пакетов.
Пакет manticore поддерживается как и ранее, и если вам не нужно вышеуказанное, просто устанавливайте/обновляйте manticore как вы привыкли . Читайте о других изменениях, произошедших в 3.5.2, в Manticore Manual и следите за новостями!

С уважением,
Команда Manticore

Установить Manticore Search

Установить Manticore Search