我正在使用lucene和tomcat应用程序。我有很多大型和小型文档需要索引。不常添加大文档,经常添加小文档。我目前刷新索引的计划是在tomcat应用程序中运行的单例线程中执行此操作。我想这样做是因为频繁的小文档添加不应该在每次添加文档时强制刷新。因此,索引将始终滞后于被索引的实际文档。
问题是,如果加法器函数没有执行刷新,并且由于某种原因lucene在线程中调用flush时抛出IOException,应用程序将如何知道哪些文档有效地未编入索引,以及可以是什么完成它。尝试再次读取索引数据似乎不是正确的解决方案,因为异常可能会再次发生。
另外,在tomcat集群中运行lucene是不是很糟糕?我是否应该在一个单独的java进程中运行lucene,如果是这样,那将如何工作?
对文件系统或mysql使用lucene更安全吗?显然,这些都是新手问题。
安迪
答案 0 :(得分:1)
Lucene真正用于客户端应用程序开发。如果您计划在服务器群集中使用它,那么使用Solr是最好的方法。您还可以对Solr实例进行集群,并使用简单的RESTless api来索引新文档。在tomcat中使用Lucene可能会起作用,但将来无法维护。使用Solr,您有一个管理员ui,您可以轻松地清除所有内容。