2016-11-18 47 views
0

我有REST服务,它使用来自数据库(mongodb)的数据。我想添加apache lucene库来实现全文搜索。什么时候在lucene中建立索引

我从来没有使用Lucene的之前,所以试图了解它是如何工作进行检查教程,但还是有一点是清楚对我来说:

在做数据库数据的索引?我有DB,一些数据被添加和删除的次数更多,有些更新很少。我可以通过所有最新的数据来完成搜索请求。

我应该更新每个数据更新的索引,否则它会自动完成,并且足以索引一次?如果应该进行重新索引,那么多长时间一次?

回答

2

如果您想要搜索实时数据,那么您应该在数据库中执行add, update and delete数据的同时在lucene索引中输入add, update and delete数据。

对于indexing这将完全正常,但不会对您的每个操作的索引为optimize

您可以在一天或根据您的使用优化您的索引一次。优化索引将帮助您更快地搜索结果。

请参考这个tutorial刚刚从lucene的基本应用开始。

+0

谢谢你的解释 – Bublik

+0

令人惊叹!谢谢 – Ichirichi

1

您可以尝试MongoDBs自己的功能(见Mongo Docs)。这可能不是灵活性,并不像Lucene那么强大,但它是免费的。

你真的问了一个有问题的问题:“什么时候编制索引?”。答案取决于你的要求。但是,您可以查看this post以查看它在技术上是如何完成的:脱机,即您在索引中将总是或多或少地落后。