SOLR DataImportHandler no evalúa expresiones
-
30-09-2019 - |
Pregunta
Estoy tratando de utilizar SOLR DataImportHandler a los datos de alimentación. Configuración era simple y directo y todo funcionaba bien, cuando yo estaba importando sólo un campo de entidad raíz.
Pero cuando traté de campos de importación de entidades anidadas, que no funciona y estoy realmente confundido y pegado.
Aquí es relevante fragmento de mi dataconfig:
<dataConfig>
<dataSource ... />
<document>
<entity name="a" query="select id, b_id from a" pk="id">
<entity name="b" query="select title from b where id ='${a.b_id}'">
<field column="title" name="title" />
</entity>
</entity>
</document>
</dataConfig>
Cuando trato de importación de depuración mediante la Consola de Desarrollo DIH con verbosa encendido, puedo ver algo como:
...
<lst name="document#3">
<str>----------- row #1-------------</str>
<str name="ID">PST_210-SI.10 </str>
<str name="B_ID">6c2r3490seeqvb86pgb4c4trf9</str>
<str>---------------------------------------------</str>
−
<lst name="entity:b">
<str name="query">select title from b where id =''</str>
<str name="query">select title from b where id =''</str>
<str name="query">select title from b where id =''</str>
<str name="time-taken">0:0:0.1</str>
<str name="time-taken">0:0:0.1</str>
<str name="time-taken">0:0:0.1</str>
</lst>
</lst>
Creo que el punto interesante son las 3 consultas en la entidad b , donde el campo de la identificación es vacía. Me parece que, al igual que el $ {} a.b_id no se evalúa, pero no puedo averiguar por qué.
¿Alguien puede ayudar, por favor? Gracias de antemano.
Solución
Ha, como de costumbre - después de pasar la tarde entera tratando de encontrar una solución, cuando se me acaban todas las ideas y hacer una pregunta comunidad .. de repente me encontré la solución a mí mismo:)
La captura fue de mayúsculas y minúsculas - Si nos fijamos correctamente en la salida XML detallado, no es por alguna razón . Así que traté de expresión uso $ {} a.B_ID y funciona!
Tal vez el caso podría ser superior speciffic sólo para controlador JDBC de Oracle.