2012-09-11 7 views
8

¿Cómo se puede almacenar una matriz de valores en un índice de Solr? Estoy específicamente tratando de formular un archivo schema.xml.Almacenamiento de matrices en Solr

Considérese el siguiente potencial de documento Solr:

ID: 351 
Name: Beatles 
Members: 
    1) Name: John 
     Instrument: Guitar 
    2) Name: Paul 
     Instrument: Guitar 
    3) Name: George 
     Instrument: Bass 
    4) Name: Ringo 
     Instrument: Drums 

En MySQL que tendría tres mesas, así:

Bands: 
    BandID 
    Name 
People: 
    PersonID 
    Name 
    Instrument 
BandsPeople: 
    BandID references Bands(BandID) 
    PersonID references People(PersonID) 

Sin tener en cuenta el concepto de que una persona puede pertenecer a varios grupos y otra ventajas del enfoque MySQL, mi objetivo es aprender a almacenar matrices en Solr. ¡La banda es simplemente un ejemplo y posiblemente no una buena en eso!

El enfoque obvio por tener múltiples Member s sería un campo de múltiples valores:

<field name="member" stored="true" type="string" multiValued="true" indexed="true"/> 

Sin embargo, ese campo multivalor en sí tiene que tener subvalores. No veo ninguna documentación sobre cómo formular el esquema. Tenga en cuenta que estoy usando Solr 4. Gracias.

Respuesta

1

Lucene ya se ha unido para que pueda aproximar el esquema db con algunas advertencias, consulte Grouping and Joining in Lucene/Solr. Solr eventualmente obtendrá acceso a eso también, verifique ongoing work

+0

Gracias, pero como dije, mi intención es aprender cómo almacenar una matriz en Solr, no cómo aproximar la base de datos que se dio como ejemplo. +1 de todos modos para la información con respecto a Lucene, sin embargo. Gracias. – dotancohen

8

Hay un par de respuestas, pero lamentablemente ninguna de ellas usa multivalued. documentos anidados

Para los nombres de las facetas indexada, sus datos (un documento) se vería así:

id="351" band="Beatles" 
    member_0="John" instrument_0="Guitar" 
    member_1="Paul" instrument_1="Guitar" 
    ... 

Con las listas relativamente cortas (menos de cientos), este último es el más fácil de su tamaño y la complejidad del documento , pero fuerza el problema en el regazo del cliente en cuanto a la búsqueda.

+0

Gracias, Gabriel. No estoy seguro de que el enfoque de campo dinámico sea un buen enfoque, aunque estoy de acuerdo en que no hay muchos otros enfoques para elegir. Voy a jugar con esto, gracias! – dotancohen

+0

Soy de la opinión que nos han dado * no * enfoque "bueno". Simplemente elija el que sea más compatible con su entorno. (O no lo hagas). – inanutshellus

+0

Correcto, obviamente este no fue un caso de uso para el que se diseñó Lucene (o Solr). El blog en los enlaces editados es excelente, ¡gracias! – dotancohen

Cuestiones relacionadas