我有一个大约500GB的文本文件(即一个非常大的日志文件),并希望构建一个快速搜索它的实现。
到目前为止,我已经使用SQLite数据库创建了自己的倒排索引,但这并不能很好地扩展。
任何人都可以建议一个相当简单的实现,以便快速搜索这个庞大的文档吗?
我看过Solr和Lucene,但这些看起来太复杂了,无法快速解决方案,我认为内置全文索引的数据库(MySQl,Raven,Mongo等)可能是最简单的解决方案但是没有这方面的经验。
答案 0 :(得分:1)
由于您正在查看日志文件的文本处理,因此请仔细查看Elasticsearch Logstask Kibana堆栈。 Elasticsearch提供基于Lucene的文本搜索。 Logstash将日志文件解析并加载到Elasticsearch中。 Kibana提供了一个可视化和查询工具,用于搜索和分析数据。
这是一个由他们的培训师在ELK堆栈上的精彩网络研讨会:http://www.elasticsearch.org/webinars/elk-stack-devops-environment/
作为一名经验丰富的MongoDB,Solr和Elasticsearch用户,我对如何轻松获取所有三个组件以及功能分析日志数据印象深刻。它还有一个强大的用户社区,无论是在stackoverflow还是其他地方。
您可以在此处下载:http://www.elasticsearch.org/overview/elkdownloads/
答案 1 :(得分:0)
将日志文件转换为csv,然后将csv导入到mysql,mongodb等。
mongodb的:
寻求帮助:
mongoimport --help
json文件:
mongoimport --db db --collection collection --file collection.json
csv文件:
mongoimport --db db--collection collection --type csv --headerline --file collection.csv
使用“--ignoreBlanks”选项忽略空白字段。对于CSV和TSV导入,此选项在大多数情况下提供所需的功能:它避免在MongoDB文档中插入空白字段。
链接指南: mongoimport,mongoimport v2.2
然后在集合上定义索引并享受: - )