Solr嵌套子文档的弊端以及一种替代方式

背景:在考察了多种工具后,我们决定使用solr来作为多标签用户管理体系的查询方案。

原计划:电话,call客,跟进等等记录上报到kafka,然后通过flume+morphline录入到solr中。每一个用户是一个独立的父文档,然后每新增一条来电/call客/跟进记录,则会在用户的父文档下增加一个嵌套子文档。

image

这样设计的好处是,一个文档就能记录一个用户所有的记录,并且还支持多维度的标签查询满足条件的用户。

在实现的过程中发现并不是那么顺利:solr原来是不支持子文档的更新和增加的。下面是solr官方社区开源问题单对应的说明。

https://issues.apache.org/jira/browse/SOLR-6596

image

然而功能仍然能实现,我们通过指定一个<doc_type>的字段将文档标识:用户文档,来电记录文档,call客记录文档。而这些文档都能通过phone这个关键字段来识别。

posted @ 2017-01-03 12:33  Arli  阅读(1988)  评论(1编辑  收藏  举报