Solr documentos con elementos secundarios?

¿Es de alguna manera posible crear un documento de solr que contenga subelementos?

Por ejemplo, ¿cómo representaría algo como esto?

      

¿Cuál es la forma habitual de resolver este problema?

Puede modelar esto de diferentes maneras, dependiendo de sus necesidades de búsqueda / facetado. Por lo general, usará campos multivalorados o dynamics. En los ejemplos siguientes omitiré el tipo de campo, los indicadores indexados y los almacenados:

     

Depende de usted correlacionar los nombres y apellidos de los niños. O podrías poner ambos en un solo campo:

    

Otro:

     

Aquí almacenaría los campos ‘child_first_1’, ‘child_last_1’, ‘child_first_2’, ‘child_last_2’, etc. De nuevo depende de usted correlacionar los valores, pero al menos usted tiene un índice. Con algún código, puedes hacer que esto sea transparente.

En pocas palabras: como dice Solr wiki : “Solr proporciona una tabla. Almacenar tablas de bases de datos en un índice generalmente requiere desnormalizar algunas de las tablas. Por lo general, los bashs de evitar la desnormalización fallan”. Depende de usted la desnormalización de sus datos de acuerdo con sus necesidades de búsqueda.

ACTUALIZACIÓN: desde la versión 4.5 o más, Solr admite documentos nesteds directamente: https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers

A partir de Solr 4.7 y 4.8, Solr admite documentos nesteds:

 { "id": "chapter1", "title" : "Indexing Child Documents in JSON", "content_type": "chapter", "_childDocuments_": [ { "id": "1-1", "content_type": "page", "text": "ho hum... this is page 1 of chapter 1" }, { "id": "1-2", "content_type": "page", "text": "more text... this is page 2 of chapter 1" } ] } 

Vea las notas de la versión de Solr para más.

Tener un campo separado para niños conduce a coincidencias falsas positivas. Los campos concatenados funcionan en cierto sentido, pero su enfoque es realmente limitado. Tenemos mucha experiencia en las tareas similares blogueadas en http://blog.griddynamics.com/2011/06/solr-experience-search-parent-child.html

    Intereting Posts