Доступен (https://kronuz.io/Xapiand/news/2019/02/11/xapiand-0-9-0-rele.../) выпуск поискового сервера Xapiand 0.9 (https://kronuz.io/Xapiand/), предназначенного для хранения, индексации и поиска большой коллекции документов. Сервер является надстройкой над библиотекой для создания поисковых систем Xapian (https://xapian.org/). Для асинхронной обработки запросов применяется библиотека libev (http://software.schmorp.de/pkg/libev.html). Код Xapiand написан на C++ и поставляется (https://github.com/Kronuz/Xapiand) под лицензией MIT. Для упрощения развёртывания предоставляется готовый образ для системы Docker (dubalu/xapiand).
Обращение к серверу производится через HTTP RESTful API. Документы могут представлять собой любые данные в форматах JSON или MessagePack (https://msgpack.org/index.html). Определение схемы хранения не требуется, выборка осуществляется при помощи полнотекстовых поисковых запросов. Поддерживается создание специализированных индексов для определённых типов данных и прикрепление более одного индекса. В том числе имеется встроенная поддержка индексации геопространственных данных, позволяющая комбинировать данные о местоположении с операциями полнотекстового поиска. Поддерживаются различные форматы хранения координат и иерархические пространственные индексы HTM (https://www.noao.edu/noao/staff/yao/sdss_papers/kunszt.pdf) (Hierarchical Triangular Mesh).
Сервер отличается высокой производительностью, низким потреблением памяти и возможностью создания распределённых и отказоустойчивых систем, в которых индексы разделены (на каждом узле своя часть индекса и в выполнение запроса вовлекается несколько узлов) или реплицированы (на каждом узле копия полного индекса и возможна балансировка нагрузки) на несколько узлов кластера. Заявляется производительность операций поиска близкая к обработке запросов в режиме реального времени. Индексы могут включать в себя файлы и полные исходные данные, что позволяет использовать Xapiand в качестве хранилища с функцией полнотекстового поиска.
Новый выпуск примечателен переходом на движок Xapian 1.5.0, существенным увеличением производительности и стабилизацией средств для обработки геопространственных данных. Кроме того, представлена поддержка языка запросов QueryDSL (https://kronuz.io/Xapiand/docs/reference-guide/query-dsl/), позволяющего формировать запросы в формате JSON. Например, можно применять логические операторы, фильтровать вывод по определённым значениям полей в документах, учитывать вес и число совпадений, преобразовывать значения полей из одного формата в другой, отсеивать документы в зависимости от пространств имён (вложенных полей, например, для хранения тегов).
URL: https://kronuz.io/Xapiand/news/2019/02/11/xapiand-0-9-0-rele.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=50134