Aplicación REST para consulta de usuario utilizando FLS (búsqueda de texto completo).
Realice
$ docker -vpara verificar la instalación.
Clone the Repository ( $ git clone [email protected]:gustavo-flor/find-user-service.git );
¿Visite la carpeta clonada ( $ cd find-user-service )? ️;
Ejecute la compilación de la aplicación ( $ ./mvnw clean install -DskipTests=true );
Suba el servicio y sus dependencias ( $ docker compose up );
Estamos listos para usar la aplicación a través del punto final http://localhost:8080/search ?
Acceda al entorno de "producción" para probar la aplicación.
Es importante tener en cuenta que no es un anfitrión dedicado, por lo que se esperan lentidones o limitaciones de reemplazos. En el primer acceso puede ocurrir un retraso para la respuesta.
Conseguir | /search?query={terms} | json
Los usuarios que fueron encontrados según los términos enviados, ordenados de acuerdo con la relevancia y la compatibilidad de los usuarios con los términos.
Términos : Cada palabra separada por un espacio considera un término (si es necesario usar para buscar una oración específica, simplemente envíe la oración entre cotizaciones dobles)
Ejemplos:
query=Pedro Gabriel : La aplicación buscará usuarios que contemplen el término "Peter" o "Gabriel" (o sus derivados, lo explico mejor en el tema de "Detalles + Objetivos ...");
query="Pedro Gabriel" : la aplicación buscará usuarios que contemplen exactamente el término "Pedro Gabriel";
query="Pedro" Gabriel : la aplicación buscará a los usuarios que contemplen exactamente el término "Peter" o contemplen "Gabriel" (o sus derivados).
| Parámetro | Descripción | Obligatorio |
|---|---|---|
| consulta | Términos para la búsqueda. | Sí |
| De | Página, el recuento de páginas comienza en 0. Valor estándar: 0. | No |
| tamaño | Límite de usuarios por página. Valor estándar: 15. | No |
| depurar | Se suma al retorno de los usuarios a la nota de relevancia y compatibilidad con los términos enviados. Valor estándar: falsos, valores permitidos [verdadero, falso]. | No |
Ejemplo:
$ 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"
}
]
}Regreso del usuario con
debug: true
{
"textScore" : 1.5 ,
"id" : "482c46f3-a27c-4f1a-abd0-3039ede21fdd" ,
"name" : "Gustav Berghahn" ,
"username" : "gustav.berghahn" ,
"relevance" : 3
} La necesidad era construir una aplicación escalable y de alto rendimiento que pudiera buscar a través de uno o más usuarios de una base de datos en particular y ordenarlos de acuerdo con su relevancia. Sabiendo que esto fue elegido para crear una aplicación Spring + MongoDB.
No tenemos un punto final para incluir nuevos usuarios, se incluyen al escalar la aplicación en función de los archivos presentes en la carpeta
resourcesdel proyecto Java.
¿Cuáles fueron las motivaciones para el uso de la primavera?
Primero y lo más importante es la familiaridad con el marco, pero también con la facilidad de crear y configurar un descanso API con él, así como facilitar la configuración con MongoDB y otras plataformas de implementación (Heroku).
¿Cuáles fueron las motivaciones para el uso de MongoDB?
Conociendo nuestra necesidad, podemos darnos cuenta de que no tendremos que lidiar con ninguna relación dentro de nuestra base de datos, por lo que sería una gran razón, pero la razón principal por la que no puedo mentir: P fue su función de búsqueda de texto ...
Ventajas y desventajas de la búsqueda de texto completo ...
Al indexar los textos de búsqueda para la búsqueda, FTS termina trayendo mucho rendimiento en comparación con opciones como "como", esta solución se especializa en la búsqueda de términos, por lo que a menudo puede realizar la búsqueda mucho más correctamente y más rápidamente.
Su mayor desventaja y enemigo es: FTS no es un "similar", y al principio es difícil entender esto, no podemos enviar la mitad de un término y creer que la búsqueda funcionará como esperamos.
Conociendo esto para una búsqueda aún más correcta, es ideal conocer realmente todas las posibilidades que el FTS nos da a través de su documentación.
Repositorio con una aplicación web para consumir este servicio, Find-User-Web [en desarrollo].
Siéntase libre de crear mejoras para esta solución ⚗, ¡Big Hug!