В статье описывается сравнение и выбор информационно-поискового сервиса и описание подходов, улучшающих метрики информационного поиска.
Ключевые слова: информационный поиск, информационно-поисковые сервисы, solr.
Задача поиска подходящего инструмента для хранения и поиска данных — является важной частью разработки любого программного продукта. В данной работе рассмотрены популярные библиотеки и архитектурные подходы, описаны основные характеристики и особенности, а также рассмотрены преимущества и недостатки. На основе этого принято решение, какое программное обеспечение для хранения и поиска информации использовать и как улучшить качество информационного поиска.
Для выбора наилучшего способа хранения информации необходимо провести качественный анализ библиотек и СУБД, имеющих функцию полнотекстового поиска. С этой целью были выбраны самые популярные open source поисковые платформы по версии db-engines.com — Elasticsearch, Solr, Sphinx, а также реляционная СУБД PostgreSQL. По результатам исследования был сделан вывод, что Sphinx обладает весьма ограниченным функционалом для обработки текста в отличии от программных продуктов на базе Lucene, а также низкой скоростью обновления данных. PostgreSQL Fulltext Search требует большое количество памяти для хранения инвертированного индекса и не подходит для частого обновления полей документа. Полнотекстовый поиск в PostgreSQL весьма гибок, для него можно писать библиотеки при помощи официального API клиента на С++. То есть доработка функционала, который есть по умолчанию в других программных продуктах полнотекстового поиска, возможна, но это очень трудозатратно, а как следствие — трудно поддерживаем. В статье «Об эффективности поиска данных в веб-приложениях» сравнивалась эффективность выполнения полнотекстовых запросов с ранжированием в СУБД MySQL, PostgreSQL и Oracle. По результатам исследования были сделаны следующие выводы:
– При малом количестве данных рассматриваемые СУБД характеризуются схожими временными затратами при выполнении поисковых запросов.
– СУБД PostgreSQL незначительно уступает СУБД Oracle и имеет большое преимущество перед СУБД MySQL.
В статье «An Analysis on the Comparison of the Performance and Configuration Features of Big Data Tools Solr and Elasticsearch» 2016 года исследуются и анализируются различия между Solr и Elasticsearch, а также обсуждаются результаты производительности этих инструментов. Критериями анализа являются их скорости запросов и индексирования, простота и сложность использования, конфигурационные формы и архитектура. По результату тестирования были сделаны следующие выводы:
– Solr и Elasticsearch являются аналогичными инструментами с точки зрения технических характеристик.
– Solr использует меньше дискового пространства, учитывая размер данных после индексирования.
– Что касается продолжительности индексирования, Elasticsearch показал лучшую производительность в коротких данных, в то время как Solr лучше показал себя на длинных данных.
– Близкие результаты работы были получены во многих различных исследованиях
– Solr и Elasticsearch могут иметь совершенно разные характеристики производительности в определенных случаях.
– Скорость QPS (query per second) может варьироваться в зависимости от типа данных.
– Довольно трудно предсказать, какой инструмент будет иметь более высокую производительность.
Одно из сравнений Solr и ElasticSearch было проведено независимым Java консультантом Kelvin Tan, который рекомендует использовать Solr в случае, если поиск является центральной частью продукта и UX, а также если приложение имеет конкретные и нюансные требования к релевантности поиска. Основываясь на вышеуказанных статьях, можно сделать вывод, что Solr и ElasticSearch являются лучшими программными продуктами для хранения и поиска информации. Непосредственный выбор зависит от архитектуры и накладываемых к информационно-поисковому сервису ограничений и требований.
Предлагаемое решение по улучшению качества поиска
Результат работы поисковой системы может оцениваться по-разному. Исторически основными метриками оценки качества информационного поиска являются полнота и точность. Полнота — отношение числа найденных релевантных документов, к общему числу релевантных документов в базе. Точность определяется как отношение числа найденных релевантных документов, к общему числу найденных документов
Для того чтобы добиться баланса между этими метриками необходимо разработать дополнительную функциональность вместо обычного полнотекстового поиска — проверка орфографии, применение концептного поиска и поэтапного поиска.
Концептный поиск является одним из методов интеллектуального анализа текста, который используется для извлечения слов, которые могут быть важны с точки зрения описания содержания документа. Это могут быть как ссылки на другие юридические документы, название суда, географических мест, а также другие термины предметной области. Задача концептного поиска состоит в том, чтобы наиболее точно выделять по заданному слову категорию, к которой оно относится, и как следствие поле, в котором можно это слово найти. Данный подход, повышающий метрику точности поискового запроса, был впервые описан в докладе «Concept Search for eCommerce with Solr» Михаила Хлуднева на конференции «Lucene/Solr Revolution 2013» и за последнее время получил широкое распространение среди крупных E-Commerce платформ.
Даже с учетом проверки орфографии и других средств анализа текста может возникнуть ситуация, когда пользовательский запрос настолько сложный, что нет документов, которые удовлетворяли бы всем ограничениям, введенными пользователем. В этом случае применим поэтапный поиск, который используется для улучшения метрики полноты. Основной задачей поэтапного поиска является вернуть пользователю хотя бы один или несколько документов (в зависимости от ограничений на минимальное количество возвращаемых документов поискового сервиса). Чтобы достичь этой цели необходимо разделить поиск на несколько этапов:
- Обычный поиск
- Поиск с проверкой орфографии
- Поиск с исключением каких-то слов
Литература:
- Mustafa Ali AKCA, Tuncay AYDOĞAN, Muhammer İLKUÇAR. «An Analysis on the Comparison of the Performance and Configuration Features of Big Data Tools Solr and Elasticsearch» 2016 URL: https://www.researchgate.net/publication/311916747_An_Analysis_on_the_Comparison_of_the_Performance_and_Configuration_Features_of_Big_Data_Tools_Solr_and_Elasticsearch.