Je dois exécuter une requête JOIN sur un index solr. J'ai deux xmls que j'ai indexés, person.xml et subject.xml.solr JOIN requête
Personne:
<doc>
<field name="id">P39126</field>
<field name="family">Smith</field>
<field name="given">John</field>
<field name="subject">S1276</field>
<field name="subject">S1312</field>
</doc>
Objet:
<doc>
<field name="id">S1276</field>
<field name="topic">Abnormalities, Human</field>
</doc>
je dois afficher uniquement les informations de la personne doc, mais chaque requête doit correspondre à des champs à la fois personne et sujet. Dans le cas où la requête correspond uniquement au document sujet, j'ai besoin d'afficher tous les documents de la personne qui ont un identifiant correspondant. Est-ce possible de faire sans exécuter deux requêtes séparées? Quelque chose comme une requête JOIN ferait l'affaire.
Une aide?
Merci beaucoup Pascal. Je ne sais pas vraiment comment changer le schéma. Nous avons des fichiers XML assez gros pour indexer (environ 4) chacun avec son propre schéma ayant des ID qui se connectent les uns aux autres. Faire tous ces un grand xml signifie beaucoup de répétition et un énorme fichier xml. Je ne sais pas ce qui est mieux, en termes de performances. Faire quelques requêtes supplémentaires ou avoir un énorme xml avec beaucoup de répétition. – Sfairas
J'aurais tendance à dire que, dans la plupart des cas, vous ne devriez pas vous inquiéter des répétitions et vous efforcez d'avoir votre entité principale complètement dénormalisée. L'indice Lucene est assez bon pour ça.Au moment de la requête, vous pouvez toujours utiliser le paramètre fl pour limiter ce qui va être retourné aux utilisateurs. –