¿Cómo buscar datos en todas las tablas de mi base de datos? Necesito crear algún tipo de búsqueda como está en Github donde después de ingresar la frase en el motor de búsqueda, nos busca a ambos repositorios, problemas y usuarios, necesito hacer algo como esto pero buscando en entidades como: User , Order y Projects ,
Estoy usando TypeORM y la consulta de búsqueda simple se ve a continuación:
const data = await this.conn .getRepository(Order) .createQueryBuilder('order') .where('order.name = :name ', { name : name }) .leftJoin('order.author', 'author') .orderBy('order.lastUpdate', 'DESC'); pero, ¿cómo buscar no solo en la entidad Order sino también en otras tablas como User y Projects ? ¿Cómo funciona el mayor buscador de empresas?
Grandes empresas como Google basan sus tecnologías en IA ahora, usándolas como un sistema para organizar Big Data ( ver más sobre eso aquí ). Sin embargo, Google usó originalmente el algoritmo Page Rank que asignaría valores más altos a los sitios web que tenían altas tasas de referencia de otros sitios ( ver aquí ).
Parece que lo que sacaría el máximo provecho es la palabra clave LIKE ( consulte los conceptos básicos ) en combinación con la palabra clave UNION ( información aquí ).
Probablemente podría obtener buenos resultados con algo como esto en SQL (no sé TypeORM):
SELECT * FROM table1 WHERE name LIKE '%searchterm%' UNION SELECT * FROM table2 WHERE name LIKE '%searchterm%';