Mon équipe travaille avec un CMS tiers qui utilise Solr comme index de recherche. J'ai remarqué qu'il semble que les auteurs utilisent Solr comme une sorte de base de données dans la mesure où chaque document renvoyé contient deux champs :
- L'identifiant du document Solr (essentiellement un nom de classe et un identifiant de base de données).
- Une représentation XML de l'objet entier
En gros, il effectue une recherche dans Solr, télécharge la représentation XML de l'objet, puis instancie l'objet à partir du XML plutôt que de le rechercher dans la base de données à l'aide de l'identifiant.
Mon intuition me dit que c'est une mauvaise pratique. Solr est un index de recherche, pas une base de données... Il me semble donc plus logique d'exécuter nos recherches complexes dans Solr, d'obtenir les identifiants des documents, puis d'extraire les lignes correspondantes de la base de données.
L'implémentation actuelle est-elle parfaitement saine, ou existe-t-il des données permettant d'étayer l'idée qu'il est temps de la remanier ?
EDITAR: Quand je dis "représentation XML", je veux dire un champ stocké qui contient une chaîne XML de toutes les propriétés de l'objet, et non plusieurs champs stockés.
1 votes
Juste par curiosité, de quel CMS s'agit-il ?