2016-01-02 5 views
0

Согласно link, родитель ребенка документы хранятся вКак solr хранит несколько ссылок на один и тот же дочерний документ из разных родительских документов?

child1,child2,parent 

Означает ли это, если у меня есть ссылки на child1 из Parent1 и parent2, он будет дублироваться дважды или будет ссылаться на тот же child1 документ?

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

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

ответ

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.

+0

oh это означает, что child1 будет создан дважды в вышеуказанном случае .. разве это не вызвало бы много дублирования? –

+0

@SumeetSharma, да, он будет создан дважды. Что касается дублирования - хорошо, зависит от ваших данных. Если вы сохраните все поля, то, вероятно, у вас будет некоторое дублирование. Если вы только индексируете данные, эффект дублирования не должен быть значительным (во всяком случае, я даже не могу представить, как избежать дублирования при построении возвращаемого индекса). –

+0

Один последний вопрос, не повлияет ли такая структура на релевантность документа? как и в случае, если дочерний документ является чем-то, что появляется во многих родителях, было бы неплохо иметь свою релевантность ниже в случае, если контекст является родительским, но что, если я ищу только среди дочерних документов .. в этом случае не было бы релевантности ошибочно уменьшается? –