pagina - Firebase e indexación/búsqueda
pagina web con firebase (2)
A largo plazo, Firebase tendrá consultas más avanzadas, por lo que es de esperar que admita este tipo de cosas directamente sin que tengas que hacer nada especial. Hasta entonces, tienes algunas opciones:
- Escriba el código del servidor para manejar la búsqueda. La manera más fácil sería ejecutar algún código de servidor responsable de la indexación / búsqueda, como usted mencionó. Firebase tiene un cliente Node.JS, por lo que sería una manera fácil de conectar el servicio a Firebase. Toda la transferencia de datos aún podría realizarse a través de Firebase, pero escribirías un servicio Node.JS que vigilara las "solicitudes de búsqueda" de clientes en alguna ubicación designada en Firebase y luego "responde" escribiendo el resultado en Firebase, para el cliente para consumir
- Almacene el índice en Firebase con clientes actualizándolo automáticamente. Si quieres ser realmente inteligente, puedes intentar implementar un esquema sin servidor donde los clientes indexen automáticamente sus datos mientras los escriben ... De modo que el índice para la búsqueda de texto completo se almacena en Firebase, y cuando un cliente escribe un nuevo elemento para la colección, sería responsable de actualizar también el índice de manera apropiada. Y para hacer una búsqueda, el cliente consumiría directamente el índice para construir el conjunto de resultados. Esto realmente tiene mucho sentido para los casos simples en los que desee indexar un campo de un objeto complejo almacenado en Firebase, pero para la búsqueda de texto completo, esto probablemente sea bastante desagradable. :-)
- Almacene el índice en Firebase con el código del servidor actualizándolo. Podría intentar un enfoque híbrido donde el índice se almacena en Firebase y los clientes lo usan directamente para realizar búsquedas, pero en lugar de que los clientes actualicen el índice, tendría un código de servidor que actualice el índice cada vez que se agreguen nuevos elementos a la colección. . De esta forma, los clientes aún pueden buscar datos cuando su servidor no funciona. Es posible que obtengan resultados obsoletos hasta que su servidor se ponga al día con la indexación.
Hasta que Firebase tenga consultas más avanzadas, el número 1 es probablemente la mejor opción si estás dispuesto a ejecutar un pequeño código de servidor. :-)
Estoy considerando usar Firebase para una aplicación que debería utilizar las personas para usar la búsqueda de texto completo en una colección de algunos miles de objetos. Me gusta la idea de entregar una aplicación solo para el cliente (sin tener que preocuparme por alojar los datos), pero no estoy seguro de cómo manejar la búsqueda. Los datos serán estáticos, por lo que la indexación en sí no es un gran problema.
Supongo que necesitaré algún servicio adicional que ejecute consultas y devuelva identificadores de objetos de Firebase. Puedo hacer girar un servicio de este tipo en una ubicación fija, pero luego tengo que preocuparme por su disponibilidad y escalabilidad de anuncios. Aunque no espero demasiado tráfico para esta aplicación, puede alcanzar un máximo de un par de miles de usuarios simultáneos.
¿Pensamientos arquitectónicos?
El método actual de Google para realizar búsquedas de texto completo parece sincronizarse con Algolia o BigQuery con Cloud Functions for Firebase .
Aquí está el ejemplo de integración de búsqueda de texto completo Algolia de Firebase, y su ejemplo de integración de BigQuery que podría ampliarse para admitir la búsqueda completa.