LIKE查询的BigData解决方案

时间:2018-05-06 14:25:26

标签: elasticsearch full-text-search bigdata

我正在寻找使用分布式系统处理此数据的建议。我有来自组织范围的计算机(笔记本电脑,台式机,平板电脑等)的数据。示例表包含此组织中每台计算机上存在的所有文件的数据。我们的想法是在FileName或FilePath中找到包含某些关键字(3000+)的文件,即通配符模式匹配。

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

当前的解决方案是在一个强大的SQL Server上运行,但由于通配符SQL查询,仍然需要数小时才能运行8000万条记录,即FILENAME LIKE'%abc%'或FILEPATH LIKE'%abc%'列表继续。

我们考虑过SQL上的FullText索引,但是这个活动每月执行一次,然后丢弃数据。因此,在获取全文索引时投入资源在时间和方面看起来并不值得。资源。

要求是在更短的时间内完成此活动,因此我们正在探索选项。

它应该是ElasticSearch或Solr还是其他一些基于云的解决方案?请提供一些高级解决方案的建议。

1 个答案:

答案 0 :(得分:1)

对于此用例,ElasticSearch是一个不错的选择。它提供了您所需要的一切 - 因为每个字段都被编入索引,它通常被用作实时全文搜索引擎。

另一方面,Solr也是一个不错的选择。根据您的要求,我认为ElasticSearch提供的功能远远超出您的需求。 Solr有点旧,导致出色的文档。它仅专注于您的案例中没有问题的文本。它可扩展并针对高流量进行了优化,因此它应该适合您的问题。

我认为ElasticSearch和Solr都能满足您的需求;选择取决于你 - 对你更有同情心:)在我看来,如果可以的话,最好是尝试两种方式然后选择。