我正在寻求为我正在开发的网络应用程序实现 Lucene,我或多或少正在寻找“最佳实践”。
我想要实现的是让网络请求进入(通过 ajax
post)并向我的 lucene
索引添加一个包含发布信息的文档.
但是,我不确定的是:
我可以在 Web 请求的上下文中运行 lucene
还是需要单独运行它并将我的请求写入一个文件夹(单独的 lucene
将监视和加载该文件夹)基于文件的文档)
我一直在研究如何实现这一点,但我没有找到很多/任何结果,所以我想我完全离开这里。
最佳答案
我认为这里的决定因素只是您希望用户(或 ajax 客户端)看到什么样的响应时间,以及您是否要保证当请求完成时文档实际上已经被添加。也就是说,将文档添加到 Lucene 索引通常相对较快(少于几毫秒并不罕见),除非您有极其严格的时间要求,否则您可以在 Web 请求的上下文中执行此操作。当然,索引速度将取决于文档大小以及标记化和分析的复杂性。
(如果请求只是将文档排队等待以后索引,那么当响应返回时,客户端无法确定它是否已被索引。您将不得不想出一些其他方法让客户端知道何时文档已编入索引,或者索引时出现错误,如果他们关心的话。)
您可能需要考虑的一件事是定期优化索引以保持较小的空间需求和快速查询。优化可能需要很长时间,因此您不想在每次添加后都进行优化,并且您可能不希望在 Web 请求的上下文中进行优化。
关于java - Lucene 从网络请求中写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28926511/