Bonjour à tous, je travaille sur un projet Django avec une base de données backend en tant que serveur PostgreSQL. et j'ai choisi elastic search
comme moteur de recherche pour mon projet.indexer le contenu db à la recherche élastique
J'ai utilisé elastic search-dsl-py
pour créer un mappage entre les modèles Django et le type doc elastic search
. et utiliser Django signals
pour capturer les événements update
et delete
. A propos, je n'ai pas mappé tous les champs du modèle Django à la recherche élastique.
Lorsqu'une recherche d'utilisateur à il/elle obtient une liste d'un article à la page d'accueil du serveur de recherche élastique. Lorsque l'utilisateur clique sur la liste d'éléments. Où devrais dans le elastic_search server
ou dans le Postgres server
Si je mets tous les détails de chaque objet dans un serveur élastique, il va être une douleur pour moi, j'interroger les données de détail d'un élément, il y a un relation imbriquée dans les modèles Django. Si je ne mets pas tous les détails dans le serveur de recherche élastique, j'ai besoin d'interroger la base de données, pour obtenir le détail d'un élément qui va être lent par rapport à une requête de recherche élastique.
Quelle approche devrais-je prendre?
Indexez toutes les propriétés avec la relation imbriquée dans le serveur de recherche élastique et effectuez toute l'opération d'interrogation sur la recherche élastique.
OU
Index uniquement le champ nécessaire dans le serveur de recherche élastique, et pour la vue détaillée, faire requête q à la base de données avec l'identifiant de champ obligatoire.
Est-ce que quelqu'un a ce genre d'expérience avant?