关于Lucene 4.4(日志搜索)的建议

关于Lucene 4.4(日志搜索)的建议,lucene,Lucene,我是Lucene的新手,尝试使用它搜索SystemA生成的日志文件/条目 建筑学 接收输入目录中的每个日志条目(即XML)。SystemA将日志条目发送到MQ队列,该队列由一个小型实用程序轮询,该实用程序拾取消息并在输入目录中创建一个文件 WriteIndex.java(即IndexWriter/Lucene)不断检查输入目录中是否接收到新文件。如果是,它将获取文件,放入索引并将文件移动到输出目录。作为索引的一部分,我将文件名、路径、时间戳和内容放入索引中。 “注意:我正在创建内容索引,并将整个

我是Lucene的新手,尝试使用它搜索SystemA生成的日志文件/条目

建筑学
  • 接收输入目录中的每个日志条目(即XML)。SystemA将日志条目发送到MQ队列,该队列由一个小型实用程序轮询,该实用程序拾取消息并在输入目录中创建一个文件

  • WriteIndex.java(即IndexWriter/Lucene)不断检查输入目录中是否接收到新文件。如果是,它将获取文件,放入索引并将文件移动到输出目录。作为索引的一部分,我将文件名、路径、时间戳和内容放入索引中。 “注意:我正在创建内容索引,并将整个内容作为StringField。”

  • 创建SearchIndex.java(即SeacherManager/Lucene/refereshIfChanged)。作为创建的一部分,我还启动了一个新线程,如果索引没有更改,它会每1分钟检查一次。我为每个请求获取IndexSearcher。很好用

  • 到目前为止,一切都很顺利。但我不确定在生产中会发生什么,因为我已经测试了几百个文件,但在生产中,我将在一天内得到大约500K个日志条目,这意味着500K个小文件,每个都有一个XML。每当收到新文件时,“WriteIndex.java”必须不间断地运行以更新索引

    我有以下问题
  • 有人做过类似的工作吗?我应该遵循的任何问题/最佳实践

  • 您认为为如此大量的xml文件生成的索引文件有什么问题吗。每个XML文件最大为2KB。请记住,我正在对内容编制索引,并将内容作为字符串放入索引中,以便在搜索时,只要在索引中找到匹配项,就可以从索引中检索

  • 我将把SearchIndex.java公开为Servlet,以允许管理员访问网页并搜索日志条目。你看到它有什么问题吗

  • 如果有人需要什么特别的东西,请告诉我

    谢谢,
    Rohit Goyal建筑看起来不错

    几件事

    • 考虑使用TextField而不是StringField。TextField将标记化,因此用户可以搜索标记。StringField未标记化,因此要使文档匹配搜索,全文应该匹配
    • lucene的性能没有问题。查看Lucene性能图。Lucene可以在几分钟内为超过10亿个维基百科文档生成索引。搜索也很快

    这里的一个问题中有三个复杂的问题。对于这样的问题,很难写出一个有用的答案。如果你需要,我可以分享更多的信息。这是我正在寻找的合并段的代码之一。每次添加新文件并编制索引时,我都可以看到在索引目录中创建的分段和其他文件。我可以合并这些部分吗?你可以链接到你所指的性能信息吗?听起来像是每微秒有2个文档写入索引,维基百科英文文章的平均大小为3.5KB,维基百科到lucene的总传输速率约为6.7GB/秒,这确实令人印象深刻。我想了解更多关于这方面的信息。我将内容添加为TextField和StringField。TextField有助于对XML内容进行索引,而StringField有助于在需要时查找整个内容。