2010-06-14 15 views

Respuesta

1

Es posible que desee tener 3 índices denominados Productos, Opiniones de productos y Artículos. Cada índice puede tener su propio esquema. La diferencia entre Lucene y un enfoque db relacional es que una fila en un db, aproximadamente se traduce a un documento en Lucene. Nota: cada documento puede tener su propio esquema (que es otra diferencia de un db relacional).

1

Con Lucene/Solr, cada documento no necesita establecer un valor para cada campo. Dentro del mismo esquema, puede tener un conjunto de campos para la entidad A y otro conjunto de campos para la entidad B y simplemente rellenar el campo apropiado dependiendo de la entidad.

Con Solr, también tiene la opción de ir a varios núcleos. Cada núcleo tiene su propio esquema. Podrías definir un núcleo para cada entidad.

5

Recomiendo crear su índice de manera que todas las entidades tengan más o menos los mismos campos básicos: title, content, url, uuid, entity_type, entity_sourcename etc. Si cada una de sus entidades tiene un conjunto único del campo de índice correspondiente, tendrá dificultades para construir consulta para buscar todas las entidades simultáneamente, y su vista de resultados puede convertirse en un gran desastre. Si necesita algunos campos específicos para una entidad específica, agréguelos y realice una lógica especial para esta entidad en función de su entity_type.

Estoy hablando por experiencia: estamos administrando un índice con más de 10 entidades diferentes y este enfoque funciona como encanto.

P.S. Algunos otros consejos simples.

  1. Asegúrese de que su documento Lucene contiene todos los datos necesarios para construir el resultado y mostrarlo al usuario (para que no tenga que ir a la base de datos para construir el resultado). Las consultas de Lucene son generalmente mucho más rápidas que las consultas de bases de datos.
  2. Si necesita usar la base de datos para construir su conjunto de resultados (por ejemplo, para aplicar permisos), use primero la consulta Lucene para reducir los resultados, la segunda consulta de la base de datos para filtrarlos.
  3. No tenga miedo de agregar campos personalizados a algunos de sus documentos si los necesita: piense en el documento Lucene como almacén de datos clave-valor.
2

Multi-core es un enfoque para usar con cuidado. Con un esquema simple como el tuyo, es una mejor manera de hacer las recomendaciones de buru. Eso significa encontrar campos comunes entre sus diferentes entidades, y luego campos que serán utilizados solo por uno o varios de ellos. A continuación, puede agregar un campo "tipo" o "tipo_id" que dirá si su entidad es producto, una revisión del producto ...

Esto le permitirá tener un índice único y procesar las consultas rápidamente.

Cuestiones relacionadas