我正在使用Solr 4.3。我创建了4个分片。我按照此处的描述配置了UniqueKey自动生成字段:
http://wiki.apache.org/solr/UniqueKey
如果我使用实际的更新处理程序来插入文档(例如,如果我使用某些JSON数据进行HTTP POST /更新,则为每个文档自动生成唯一键),它可以正常工作。
但是,如果我使用DataImportHandler从数据库中提取某些文档,它们不会添加到索引中,而是在Solr日志中看到一条警告,说“缺少必需的id字段”。
我知道DataImportHandler没有通过UpdateHandler来添加文档,但是我希望这个功能对DIH也有用......
所以我的问题是:当使用DataImportHandler插入文档时,有没有人知道如何使Solr 4.3集群的id自动生成工作?
答案 0 :(得分:2)
嗯,我最终使用的解决方案就是这个
在变换器内部,我几乎做了UUIDUpdateProcessorFactory所做的事情:添加
@Override
public Object transformRow(Map<String, Object> row, Context context) {
row.put("id", UUID.randomUUID());
然后我从solrconfig.xml中删除了<updateRequestProcessorChain name="uuid">
标记,并且只根据问题中的链接离开了schema.xml配置