Autocomplete avec java, Redis, Recherche élastique, Mongo


MarcG:

Je dois mettre en œuvre un autocomplete avec plus de 500 000 noms qui peuvent augmenter par la suite à plus de 4 millions de noms.

Backend est un appel de service web java REST avec Spring. Dois - je utiliser MongoDB , Redis ou ElasticSearch pour le stockage et l' interrogation / recherche les noms?

Opster ElasticSearch Ninja:

Ceci est une recherche très important cas d'utilisation et MongoDB et Redis sont très bons pour les recherches à base de clés et ne pas utiliser à des fins de recherche, alors que ElasticSearch est un moteur de recherche distribuée, construite spécifiquement pour un tel cas d'utilisation.

Avant de choisir le système, vous devez savoir comment votre fonction fonctionne en interne et en dessous de la contrepartie de ce choix.

exigences non fonctionnelles pour votre fonction

  1. Quel serait le total pas de requêtes de recherche par seconde (QPS)?
  2. Comment vous fréquemment à jour les documents (par exemple noms dans votre exemple).
  3. Quel est le SLA après les noms de mise à jour et à venir dans le résultat de recherche?
  4. SLA pour vos résultats de recherche.

Certaines exigences fonctionnelles.

  1. Comment autocomplete devrait ressembler, préfixe, infixe recherche sur les noms?
  2. Minimum le nombre de caractères utilisateur doit taper, avant de leur montrer les résultats de saisie semi-automatique.
  3. À quelle fréquence les exigences ci-dessus peuvent changer.

documents indexés ElasticSearch dans l'index inversé et les ouvrages sur les jetons de match (qui peut être facilement adapté pour répondre aux besoins d'affaires), donc super rapide dans la recherche. Redis et MongoDB ne sont pas avoir cette structure interne et ne doivent pas être utilisés pour ce cas d'utilisation et vous ne devriez pas avoir de doute de choisir ElasticSearch sur ces pour mettre en œuvre Autocomplete.

Comme autocomplete est l' une des caractéristiques les plus importantes, il y a un excellent blog , que vous devriez lire pour comprendre les différentes approches proposées par Elasticsearcg et leur compromis.

Articles connexes


Intégrez la recherche élastique avec Logrus (golang logging)

Amanda: J'utilise logruspour faire toute la journalisation de mon application golang. Cependant, je souhaite également intégrer cela à Elastic Search de sorte que tous les journaux soient également vidés vers la recherche élastique lorsque je crée une entrée d

Recherche élastique avec laravel pour plusieurs champs

Vivek Sangani J'ai intégré la recherche élastique dans laravel à l'aide du tutoriel ci-dessous. https://appdividend.com/2018/06/30/laravel-elasticsearch-tutorial-example/ Selon ce didacticiel, la recherche avec des champs uniques fonctionne correctement. c'est

Recherche élastique avec Docker

Harceler J'ai exécuté le script de composition de docker suivant et je m'attends à ce que deux nœuds soient en place, mais celui-ci est le seul. Il semble y avoir une erreur évidente. Tiré de la documentation version: '2.2' services: elasticsearch: image

Services OData avec recherche élastique

Nilafur Je suis nouveau dans les services OData.J'ai écrit une requête pour récupérer le champ spécifique avec des valeurs nulles.Je crée la requête dans OData et la transmet à la recherche élastique pour récupérer des données.Mais la requête semble ne pas fon

exécuter une instance locale de recherche élastique avec docker

Rafa Je suis les instructions ici https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html et n'ai besoin que d'une seule instance de recherche élastique. Quand je cours, docker-compose upj'obtiens une erreur disantThe compose file docker-co