Puede modelar esto de diferentes maneras, según sus necesidades de búsqueda/facetado. Por lo general, usará campos multivalorados o dinámicos. En los siguientes ejemplos I a omitir el tipo de campo, banderas indexados y almacenados:
<field name="first"/>
<field name="last"/>
<field name="child_first" multiValued="true"/>
<field name="child_last" multiValued="true"/>
Es hasta usted para correlacionar los niños primeros nombres y apellidos. O simplemente puede poner tanto en un solo campo:
<field name="first"/>
<field name="last"/>
<field name="child_first_and_last" multiValued="true"/>
Otra:
<field name="first"/>
<field name="last"/>
<dynamicField name="child_first_*"/>
<dynamicField name="child_last_*"/>
Aquí en que almacena los campos de los child_first_1 ', 'child_last_1', 'child_first_2', 'child_last_2', etc. De nuevo depende de usted correlacionar valores, pero al menos 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 intentos 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 menos Solr apoya directamente documentos anidados: https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers
Gracias Mauricio. Las opciones n. ° 1 y n. ° 2 no son realmente útiles ya que resulta imposible extraer campos individuales, especialmente si hay más de dos. Su tercera sugerencia puede funcionar, usando campos dinámicos. ¿Qué mecanismo en el DataImportHandler usaría para generar estos campos dinámicos? – cambo
@ user332523: puede ser imposible si está restringido a usar DataImportHandler ... pero es muy fácil de hacer si importa en su propio proceso codificado. –
Hola Mauricio, gracias por la respuesta. ¿Solo se refiere a un importador de datos personalizado que usa la API Solr para agregar los documentos al índice? Leí sobre algo en los documentos Solr DIH que podrían crear campos dinámicos [http://wiki.apache.org/solr/DataImportHandler#TemplateTransformer] – cambo