Увидел свет (http://www.elasticsearch.org/blog/1-0-0-released/) релиз свободной платформы для организации работы поисковых систем Elasticsearch 1.0.0 (http://www.elasticsearch.org/), основанной на технологиях индексации и поиска, предоставляемых движком Lucene (https://lucene.apache.org/). Поисковые сервисы на базе Elasticsearch внедрены в GitHub, Mozilla, WordPress, Sony и StackOverflow. Код Elasticsearch написан на языке Java и распространяется (https://github.com/elasticsearch/elasticsearch) под лицензией Apache. Готовые сборки подготовлены (http://www.elasticsearch.org/downloads/1-0-0/) в форматах пакетов RPM и DEB. Особенности Elasticsearch:
- Поддержка создания распределённых и отказоустойчивых конфигураций. Поисковый индекс может быть распределён на несколько узлов с использованием шардинга. Каждая порция данных индекса может быть реплицирована на несколько узлов. Операции чтения и поиска могут выполняться на любых узлах, содержащих реплицированные части индекса. Каждая порция данных общего индекса представляет собой полноценный обособленный индекс Lucene;
- Поддержка обслуживания одним экземпляром движка нескольких поисковых служб: поддерживается обработка более одного индекса и более одного типа контента на каждый индекс;
- Для управления и взаимодействия с поисковым сервером может использвоаться как HTTP RESTful API, так и нативный Java API. API абстрагирует все операции по опросу отдельных узлов и агрегации данных, позволяя работать с распределённым индексом, как с единым целым. Клиенты, работающие поверх HTTP RESTful API подготовлены для языков Javascript (http://www.elasticsearch.org/guide/en/elasticsearch/client/j... PHP (http://www.elasticsearch.org/guide/en/elasticsearch/client/p... Perl (http://www.elasticsearch.org/guide/en/elasticsearch/client/p... Python (http://www.elasticsearch.org/guide/en/elasticsearch/client/p... и <a href="http://www.elasticsearch.org/guide/en/elasticsearch/client/r... target="_top">Ruby</a>;
- Документо-ориентированный подход к хранению атрибутов. Отсутствие необходимости предварительного определения жесткой схемы структуры данных. Схема данных может варьироваться и определяться в привязке к разным типам контента, предоставляя возможность адаптации процесса индексации под свои нужды.
- Поддержка кэширования запросов и пополнения индекса в асинхронном режиме. Наличие средств для сохранения целостности индекса в случае краха сервера;
- Высокая производительность поиска, выполнение запросов со скоростью близкой к обработке данных в реальном времени;
- Обеспечение непротиворечивости операций - все действия на уровне одного документа соответствуют требованиям ACID (атомарность, согласованность, изолированность, надежность).
Ключевые улучшения, добавленные в версии Elasticsearch 1.0:
- Snapshot/Restore API - программный интерфейс для управления созданием/восстановлением резервных копий индексов или всего кластера;
- Гибкие средства для сбора статистики для анализа работы поисковой системы;
- Обратный поиск - вместо поиска всех удовлетворяющих запросу документов, осуществляется определение запросов, подходящих для заданного документа;
- cat API - простой интерфейс для ручной выборки данных, более наглядный для человека, чем JSON;
- Поддержка федеративного поиска, при котором логически объединяются результаты разных поисковых кластеров;
- Поддержка формата Doc values, позволяющем агрегировать данные документов большого размера, за счет промежуточного сохранения полей на диске, без держания их в памяти;
- Механизм отслеживания попыток загрузки слишком больших полей с данными в память, для исключения ситуаций, которые могут привести к исчерпанию доступной памяти.
URL: http://www.elasticsearch.org/blog/1-0-0-released/
Новость: http://www.opennet.me/opennews/art.shtml?num=39081