请问lucene在用于搜索数据库内容的时候,索引是怎么做的?

请问lucene在用于搜索数据库内容的时候,索引是怎么做的,比如建立了索引,但是库中内容发生了变化,还能通过lucene的索引搜索吗?还是要重新建立索引?

阅读 3.2k
2 个回答

用Lucene索引数据库,其实就是将数据库中需要被索引的数据取出来,建立Lucene document.如果库中的内容发生变化,这个内容也被lucene建立了document, 那么就需要同步更新到Lucene document中了。同步的机制可以使用队列等方式,一般建议不要对频繁改动的内容做索引。

Lucene建立的索引结构不适合进行更新和删除操作。对于更新Lucene采用先将原有索引删除,再重新建立索引的方式。
删除的方式是软删除,即在liveDoc中将该文档标记为删除。而实际删除文档的操作,会在Segment合并的时候进行。
https://www.elastic.co/cn/blog/lucenes-handling-of-deleted-documents
尽量避免更新或者删除文档的操作

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题