2014-09-26 71 views
-1

我有一个很大的数据文件(> = 300M,csv),并且想要查询数据并从中返回行。如何快速搜索大文本行分隔数据文件?

我可以用这个方法:

grep pattern data.csv 

但它是非常缓慢的。我需要查询几种模式,所以也许索引这个文件是一个很好的解决方案。

有什么好的命令行工具可以完成这项工作吗?

我知道的有:

  • idutils:查询速度快,但返回的结果需要访问数据文件,使其缓慢。
  • solr:不那么好用。
+0

如果你真的想去一趟,Hadoop(及其派生工具)就是为此而设计的,虽然规模更大。原则应该是一样的。 – 2014-09-26 04:21:34

回答

0

您错过了很多关于您的问题的细节,可以帮助您更轻松地进行操作。例如,CSV中的字段,通常搜索的模式(如果每次搜索相同的数据集)和搜索频率。假设您需要以grep和/或idutils不支持的方式搜索相同的数据集,Solr才有意义。例如,如果您想搜索可以返回部分匹配的搜索结果,Solr使得这更容易。

虽然不是命令行解决方案,但是standing up Solrloading it with CSV是一项直接的活动。根据您的CSV的字节大小,它不需要任何调整。努力的工作是defining a Solr schema.xml definition,它以支持您各种搜索要求的方式为您的数据编制索引。在您的特定情况下,您似乎希望确实有一些标记,并且可能会对您的可搜索字段进行填充,因为您已经在寻找模式匹配。但这真的取决于您的具体搜索需求。