Solr的DIH - 如何处理删除的文件?(Solr DIH — How to handle de

2019-07-22 10:59发布

我在玩弄我的webapp一个Solr的强大的搜索功能,我想它会是最好使用DataImportHandler处理通过数据库应用程序同步。 我只是喜欢检查的风采last_updated_date领域。 好东西。 不过,我不知道如何处理这种方法删除的文件。 我看到它的方式,我有2种选择。 我既可以从客户端发送一个明确的消息到Solr当一个文件被删除,或者我可以添加一个“删除”的标志,并保留在数据库中的对象,这样的Solr会注意到,该文件已经改变,现在是“被删除“。 我可以添加一个查询过滤器会忽略与删除标志的结果,但它似乎效率不高包括所有在Lucene索引中删除的文档。 什么是其他人呢?

Answer 1:

这是你的选择:

  • 使用DIH特殊命令 $ deleteDocById或$ deleteDocByQuery(需要Solr的1.4+)
  • 使用清洁参数 DIH的导入之前删除整个索引。
  • 使用preImportDeleteQuery定义发生了什么事情在导入前被清除。 (需要的Solr 1.4+)
  • 使用数据库触发器,而不是DIH管理更新索引。
  • 如果你正在使用某种ORM的使用它的拦截能力,而不是DIH。 例如,你可以使用Hibernate的事件来更新更新索引,插入或删除。


Answer 2:

我想有一个“删除”的标志,所以我不真正删除我的数据! 取决于你是如何偏执。 我喜欢毛的建议...



文章来源: Solr DIH — How to handle deleted documents?