J'ai beaucoup cherché pour voir comment utiliser MongoDB en combinaison avec Solr, et quelques questions ici ont des réponses partielles, mais rien de vraiment concret (plutôt comme des théories). Dans mon application, je vais avoir beaucoup, beaucoup de documents stockés dans MongoDB (peut-être jusqu'à quelques centaines de millions), et je veux implémenter des recherches en texte intégral sur certaines propriétés de ces documents, donc je suppose que Solr est la meilleure ce.java - MongoDB + Performances de Solr
Ce que je veux savoir, c'est comment dois-je configurer/exécuter tout pour avoir de bonnes performances? En ce moment, voici ce que je fais (et je sais que ce ne est pas optimale):
1- Lors de l'insertion d'un objet dans MongoDB, je puis l'ajouter à Solr
SolrServer server = getServer();
SolrInputDocument document = new SolrInputDocument();
document.addField("id", documentId);
...
server.add(document);
server.commit();
2- Lors de la mise à jour d'une propriété du objet, depuis Solr ne peut pas mettre à jour un seul champ, d'abord je récupère l'objet de MongoDB puis mettre à jour l'index Solr avec toutes les propriétés de l'objet et de nouveaux et faire quelque chose comme
StreamingUpdateSolrServer update = new StreamingUpdateSolrServer(url, 1, 0);
SolrInputDocument document = new SolrInputDocument();
document.addField("id", documentId);
...
update.add(document);
update.commit();
3- Lors de l'interrogation, d'abord je fais une recherche Solr et puis lors de la récupération de la liste des documents SolrDocumentList
Je passe par chaque document et:
- obtenir l'ID du document
- obtenir l'objet de MongoDB ayant le même identifiant pour pouvoir récupérer les propriétés à partir de là
4- Lorsque supprimer, bien je n'ai pas encore fait cette partie et pas vraiment sûr comment le faire en Java
Alors quelqu'un a des suggestions sur la façon de le faire de manière plus efficace pour chacun des scénarios décrits ici? Comme le processus pour le faire de telle sorte qu'il ne faudra pas 1 heure pour reconstruire l'index quand il y a beaucoup de documents dans Solr et en ajoutant un document à la fois? mes exigences ici sont que les utilisateurs peuvent vouloir ajouter un document à la fois, plusieurs fois et je voudrais qu'ils soient en mesure de le récupérer juste après
Quelle est la taille de chaque document et les propriétés que vous souhaitez indexer? –
@JustinThomas - Eh bien, chaque document peut avoir environ 10 propriétés, certaines d'entre elles peuvent être de longues descriptions et je voudrais indexer pour la recherche en texte intégral sur la description, juste la correspondance exacte sur les autres. Est-ce que ça répond à votre question? – Guillaume