Решение BigData для LIKE запросов - PullRequest
0 голосов
/ 06 мая 2018

Я ищу предложения по использованию распределенной системы для обработки этих данных. У меня есть данные с компьютеров всей организации (ноутбуки, настольные компьютеры, планшеты и т. Д.). Пример таблицы содержит данные для всех файлов, присутствующих на каждом компьютере в этой организации. Идея состоит в том, чтобы найти файлы с определенными ключевыми словами (3000+) в FileName или FilePath, то есть совпадении шаблонов шаблонов.

+-------------+----------+----------+----------+----------+
| MachineName | FileName | FilePath | FileType | FileSize |
+-------------+----------+----------+----------+----------+

Текущее решение работает на мощном SQL Server, но все еще занимает несколько часов, чтобы просмотреть 80 миллионов записей из-за подстановочных запросов SQL, например, FILENAME LIKE "% abc%" или FILEPATH LIKE "% abc%", и этот список можно продолжить .

Мы думали об индексах FullText в SQL, но это действие выполняется один раз в месяц, а затем данные отбрасываются. Таким образом, инвестирование ресурсов в заполнение полнотекстового индекса не кажется оправданным с точки зрения времени и ресурсов.

Требуется завершить эту деятельность в более короткие сроки, и поэтому мы ищем варианты.

Должно ли это быть ElasticSearch или Solr или какое-либо другое облачное решение? Пожалуйста, сообщите о каком-либо высокоуровневом решении.

1 Ответ

0 голосов
/ 07 мая 2018

Для этого случая использования ElasticSearch является хорошим выбором. Он предоставляет все, что вам нужно - поскольку каждое поле индексируется, оно обычно используется в качестве механизма полнотекстового поиска в режиме реального времени.

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

Я думаю, что и ElasticSearch, и Solr выполнят то, что вам нужно; выбор за вами - что вам больше симпатизирует :) По моему мнению, если вы можете, лучше всего попробовать оба из них и затем выбрать.

...