SOLR如何使用$ DeleteDocById与DIH触发删除

时间:2013-07-15 15:46:26

标签: solr dataimporthandler

我需要在使用dataimporter.request.clean == false完全导入时删除一些文档。这限制了对我开放的选项,似乎使用$deleteDocById将是我的最佳选择。但是,我找不到如何实现这一目标的好例子。

我正在使用以下几行:

<document>
    <entity query="select id, text
        IF(yadda.dateyyy <= NOW(),yadda.id,NULL) AS $deleteDocById,
        IF(yadda.dateyyy <= NOW(),yadda.id,NULL) AS $skipDoc,
        from yadda">
    </entity>
 </document>

GET参数?command=full-import&clean=false似乎正确地触发了包含Indexing completed. Added/Updated: 72 documents. Deleted 4 documents.的最终报告,但是当查询所谓的已删除文档时仍然在索引中。

1 个答案:

答案 0 :(得分:2)

$skipDoc需要设置为字符串值"true"才能生效。

<document>
    <entity query="select id, text
        IF(yadda.dateyyy <= NOW(),yadda.id,NULL) AS $deleteDocById,
        IF(yadda.dateyyy <= NOW(),"true",NULL) AS $skipDoc,
        from yadda">
    </entity>
 </document>