solr dataimporthandler

Solr DataImportHandler-JOIN vs. entidad separada



(1)

Algunos consejos que pueden ayudarlo a decidir:

  • Las entidades secundarias activan una consulta para cada uno de los registros y, por lo tanto, su rendimiento será más lento si tienes una gran colección.
  • Si tiene un mapeo de uno a uno, puede usar la combinación para que obtenga todos los campos con una sola consulta.
  • Si tiene múltiples registros para la raíz, usaría la entidad secundaria que probablemente crearía un campo de valores múltiples. (No puede usar una consulta de unión única ya que devolvería varias filas para el mismo documento a menos que desee el comportamiento)

En Solr DIH data-config.xml, es mejor buscar tantos campos como sea posible con la consulta en la entidad principal con JOIN como:

<entity name="Lists" pk="l.list_id" query="SELECT l.list_id AS id, l.user_id, lo.is_votable FROM lists l INNER JOIN list_options lo ON lo.list_id = l.list_id">

o use una subentidad separada como:

<entity name="Lists" pk="l.list_id" query="SELECT l.list_id AS id, l.user_id FROM lists l"> <entity name="ListOptions" query="SELECT lo.is_votable FROM list_options lo WHERE lo.list_id=${Lists.id}" /> </entity>