solr如何存储来自不同父文档的同一子文档的多个引用?

时间:2016-01-02 06:54:35

标签: solr solr5

根据link,父子文档存储为

child1,child2,parent

这是否意味着如果我从parent1和parent2引用了child1,它将被复制两次还是会引用同一个child1文档?

Will it be 
child1(COPY1),child2,parent1    ///  child1(COPY2),parent2

OR 
child1(COPY1),parent1 ///// child1(COPY1),parent2

1 个答案:

答案 0 :(得分:1)

在尝试了一些嵌套文档后,我得出结论,当涉及到更新索引时,solr会将父级及其所有子级视为一个原子文档。该文档由父母的身份标识。没有提到孩子这样的事情。孩子是一个原子文件的一部分。

这意味着当您索引两个嵌套文档时:

curl http://localhost:8983/solr/demo/update?commitWithin=3000 -d '                                                                                                                                            
[{
  id : parent1,                                                                                                                                                             
  _childDocuments_ : [                                                                                                                                                                                        
    { id: child1},                                                                                                                                                                                                         
    { id: child2}                                                                                                                                                                                                         
  ]                                                                                                                                                                                                           
}, {
  id : parent2,                                                                                                                                                             
  _childDocuments_ : [                                                                                                                                                                                        
    { id: child1}                                                                                                                                                                                                        
  ]                                                                                                                                                                                                           
}]'

您最终会得到以下索引

child1,child2,parent1,child1,parent2

更新parent2-child1的索引不会影响parent1-child1