Lucene从网络请求写作

时间:2015-03-08 12:42:49

标签: java ajax servlets web lucene

我希望将Lucene用于我正在努力的网络应用程序,而且我或多或少都在寻找最佳实践"。

我想要实现的目标是让一个网络请求进入(通过ajax帖子)并将文档添加到我的lucene索引中,并附上所发布的信息。

但是,我不确定的是: 我可以在Web请求的上下文中运行lucene,还是需要单独运行它并让我的请求写入文件夹(单独的lucene将根据文件监视和加载文档)

我一直在寻找如何实现这一点,但我没有找到很多/任何结果,所以我想我完全不在这里。

1 个答案:

答案 0 :(得分:1)

我认为这里的决定因素是您希望用户(或ajax客户端)看到什么样的响应时间,以及您是否要保证在请求完成时实际添加了文档。也就是说,将文档添加到Lucene索引通常相对较快(不到几毫秒并不罕见)您可以在Web请求的上下文中执行此操作,除非您有非常严格的时序要求。当然,索引速度将取决于文档大小以及标记化和分析的复杂性。

(如果请求只是将文档排队等待以后编制索引,那么客户端无法确定是否在响应回来时将其编入索引。您将不得不想出一些其他方式让客户端知道文档何时被编入索引,或者是否存在索引错误,如果他们关心它。)

您可能想要考虑的一件事是定期优化索引以保持较小的空间要求并快速查询。优化可能需要很长时间,因此在每次添加后都不是您想要执行的操作,并且您可能不希望在Web请求的上下文中执行此操作。