快速实现非常大的索引文本搜索?

时间:2014-06-17 09:10:24

标签: mysql mongodb solr lucene indexing

我有一个大约500GB的文本文件(即一个非常大的日志文件),并希望构建一个快速搜索它的实现。

到目前为止,我已经使用SQLite数据库创建了自己的倒排索引,但这并不能很好地扩展。

任何人都可以建议一个相当简单的实现,以便快速搜索这个庞大的文档吗?

我看过Solr和Lucene,但这些看起来太复杂了,无法快速解决方案,我认为内置全文索引的数据库(MySQl,Raven,Mongo等)可能是最简单的解决方案但是没有这方面的经验。

2 个答案:

答案 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文档中插入空白字段。

链接指南: mongoimportmongoimport v2.2

然后在集合上定义索引并享受: - )