Application REST pour la consultation utilisateur à l'aide de FLS (recherche de texte intégral).
Effectuez
$ docker -vpour vérifier l'installation.
Clone The Repository ( $ git clone [email protected]:gustavo-flor/find-user-service.git );
Visitez le dossier cloné ( $ cd find-user-service )? ️;
Exécutez la version de l'application ( $ ./mvnw clean install -DskipTests=true );
Montez le service et ses dépendances ( $ docker compose up );
Nous sommes prêts à utiliser l'application via Endpoint http://localhost:8080/search ?
Accédez à l'environnement "Production" pour tester l'application.
Il est important de noter que ce n'est pas un hôte dédié, donc les lentidons ou les limitations des refuts sont attendus. Dans le premier accès, un retard peut se produire pour la réponse.
Obtenez | /search?query={terms} | json
Les utilisateurs qui ont été trouvés en fonction des termes envoyés, commandés en fonction de la pertinence et de la compatibilité des utilisateurs avec les termes.
Termes : Chaque mot séparé par un espace est considéré comme un terme (s'il est nécessaire d'utiliser pour rechercher une phrase spécifique, envoyez simplement la phrase entre les doubles devis)
Exemples:
query=Pedro Gabriel : L'application recherchera des utilisateurs qui envisagent le terme "Peter" ou "Gabriel" (ou ses dérivés, je l'explique mieux dans le sujet des "détails + buts ...");
query="Pedro Gabriel" : l'application recherchera des utilisateurs qui contemplent exactement le terme "Pedro Gabriel";
query="Pedro" Gabriel : l'application recherchera des utilisateurs qui contemplent exactement le terme "Peter" ou envisagent "Gabriel" (ou leurs dérivés).
| Paramètre | Description | Obligatoire |
|---|---|---|
| requête | Termes pour la recherche. | Oui |
| Depuis | Page, le nombre de pages commence à 0. Valeur standard: 0. | Non |
| taille | Les utilisateurs limitent par page. Valeur standard: 15. | Non |
| déboguer | Ajoute au retour des utilisateurs à la note de pertinence et de compatibilité avec les termes envoyés. Valeur standard: fausses, valeurs autorisées [true, false]. | Non |
Exemple:
$ curl http://localhost:8080/search ? query=%22pedra%22 {
"from" : 0 ,
"size" : 15 ,
"data" : [
{
"id" : "9f64853b-f164-4b13-a3d7-1fdb9977e516" ,
"name" : "Jeferson Pedra" ,
"username" : "jeferson.pedra"
} ,
{
"id" : "b4026e35-932c-4943-b0db-7dd31eca5597" ,
"name" : "Stefane Pedra Zimiani" ,
"username" : "stefane.pedra.zimiani"
}
]
}Retour d'utilisateur avec
debug: true
{
"textScore" : 1.5 ,
"id" : "482c46f3-a27c-4f1a-abd0-3039ede21fdd" ,
"name" : "Gustav Berghahn" ,
"username" : "gustav.berghahn" ,
"relevance" : 3
} Le besoin était de créer une application évolutive et haute performance qui pourrait rechercher un ou plusieurs utilisateurs d'une base de données particulière et de les commander en fonction de leur pertinence. Sachant que cela a été choisi pour créer une application Spring + MongoDB.
Nous n'avons pas de point final pour inclure de nouveaux utilisateurs, ils sont inclus lors de l'escalade de l'application en fonction des fichiers présents dans le dossier Java Project
resources.
Quelles ont été les motivations pour l'utilisation du printemps?
Le premier et le plus important est la familiarité avec le cadre, mais aussi la facilité de création et de configuration d'une API Repose avec elle, ainsi que de faciliter la configuration avec MongoDB et d'autres plates-formes de déploiement (Heroku).
Quelles ont été les motivations pour l'utilisation de MongoDB?
Connaissant nos besoins, nous pouvons réaliser que nous n'aurons pas à faire face à aucune relation dans notre base de données, donc ce serait une excellente raison, mais la principale raison pour laquelle je ne peux pas mentir: P était votre fonctionnalité de recherche de texte ... FTS TADããã !!!
Avantages et inconvénients de la recherche en texte intégral ...
En indexant les textes de recherche pour la recherche, FTS finit par apporter beaucoup de performances par rapport à des options telles que "Like", cette solution est spécialisée dans la recherche de termes, peut donc souvent effectuer la recherche beaucoup plus droite et plus rapidement.
Son plus grand inconvénient et son ennemi est: FTS n'est pas un "semblable", et au début, il est difficile de comprendre cela, nous ne pouvons pas envoyer la moitié d'un terme et croire que la recherche fonctionnera comme nous nous attendons.
Sachant cela pour une recherche encore plus bonne, il est idéal de vraiment connaître toutes les possibilités que le FTS nous donne grâce à sa documentation.
Référentiel avec une application Web pour consommer ce service, find-user-web [en cours de développement].
N'hésitez pas à créer des améliorations pour cette solution ⚗, Big Hug!