Utilizando Bigquery para la búsqueda de texto completo en Firestore

Tengo que implementar la búsqueda de texto completo en mi aplicación de arranque, que utiliza Cloud Firestore como backend. Una búsqueda escaneará documentos en una colección y ver si alguno de ellos contiene la cadena de búsqueda. Firestore no admite la búsqueda de texto completo y sugiere utilizar el servicio de búsqueda de terceros, Algolia. El problema es muy caro.

¿Puedo usar bigquery para esta función? Ya estoy transmitiendo datos a la bigquería a través de la chimenea. Así que todas las colecciones están disponibles en bigquery.

¿Cómo puedo realizar la consulta de Bigquery "SELECT" directamente desde una aplicación de arranque? ¿Cuáles son las desventajas, si las hay para este enfoque y hay alguna alternativa.

Pregunta hecha hace 3 años, 4 meses, 27 días - Por codecrafty


3 Respuestas:

  • ¿Puedo usar bigquery para esta función?

    Tendrás los mejores resultados si utilizas la herramienta adecuada para el trabajo. Si quieres hacer búsquedas de ad-hoc a través de enormes conjuntos de datos, recomendaría BigQuery. Si quieres realizar una búsqueda de texto completo, te recomiendo usar un motor de búsqueda de texto completo dedicado.

    ¿Cómo puedo realizar la consulta de Bigquery "SELECT" directamente desde una aplicación de arranque?

    Google Los productos de la nube vienen con SDKs que están destinados a ser utilizados únicamente en entornos de confianza. No hay SDK directo para acceder a BigQuery directamente desde su código de aplicación Flutter, o cualquier otro cliente directo que conozca.

    Así que tendrás que envolver el código lado del servidor en una API personalizada que luego expones a tu aplicación Flutter. Típicamente harás esto en algo como Cloud Funs o Cloud Run.

    Respondida el Dec 19, 2020 a las 15:19 - por htmlhero

    Votos positivos: 0 | Votos negativos: 0

  • Sí, es posible utilizar BigQuery para realizar búsquedas de texto completo en los datos de Firestore. Puedes exportar los datos de Firestore a BigQuery mediante la función de exportación de Firebase, lo que te permitirá realizar consultas completas de texto en BigQuery.

    Para realizar consultas de búsqueda de texto completo en BigQuery, puedes utilizar la función CONTAINS para buscar una cadena de texto específica en los documentos de Firestore. Puedes ejecutar consultas SQL en BigQuery para buscar documentos que contengan una determinada cadena de texto.

    Para realizar consultas directamente desde tu aplicación de arranque a BigQuery, puedes utilizar la API de BigQuery de Google Cloud Platform. Puedes autenticar tu aplicación y realizar consultas mediante las bibliotecas cliente de Google Cloud SDK.

    Algunas posibles desventajas de este enfoque incluyen el costo de almacenamiento y consulta en BigQuery, así como la necesidad de sincronizar los datos entre Firestore y BigQuery de manera continua para tener la información actualizada.

    Otra alternativa sería utilizar servicios de búsqueda de terceros como Algolia, como se mencionó, o implementar tu propio motor de búsqueda específico para tu aplicación. Cada enfoque tiene sus propias ventajas y desventajas en términos de costo, complejidad y rendimiento.

    En resumen, utilizar BigQuery para la búsqueda de texto completo en Firestore es una opción viable, pero debes considerar el costo y la complejidad involucrados antes de tomar una decisión.

    Respondida el Dec 20, 2020 a las 15:19 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Uso de BigQuery para la búsqueda de texto completo en Firestore

    Sí, puedes utilizar BigQuery para la búsqueda de texto completo en Firestore.

    BigQuery es un almacén de datos analíticos que admite la búsqueda de texto completo. Puedes transmitir datos desde Firestore a BigQuery y luego realizar consultas de búsqueda de texto completo en BigQuery.

    Cómo realizar una consulta "SELECT" de BigQuery desde una aplicación de arranque:

    Puedes utilizar el cliente de Google BigQuery para realizar consultas "SELECT" de BigQuery desde una aplicación de arranque.

    ```ts
    const {BigQuery} = require('@google-cloud/bigquery'); const bigquery = new BigQuery();

    async function textSearch() { // Consulta de muestra const sqlQuery = SELECT <strong> FROM \mydataset.mytable` WHERE CONTAINS(text_field, "busqueda")`;

    // Ejecuta la consulta const [rows] = await bigquery.query(sqlQuery);

    // Procesa los resultados rows.forEach(row => { console.log(row); }); }

    ```

    Desventajas del enfoque:

    Latencia: Las consultas de BigQuery pueden tener una latencia más alta que las consultas de Firestore. Costo: Las consultas de BigQuery pueden incurrir en costos, especialmente para consultas complejas o conjuntos de datos grandes. Dependencia de sincronización: La calidad de los resultados de la búsqueda depende de la sincronización de los datos entre Firestore y BigQuery.

    Alternativas:

    Algolia: Un servicio de búsqueda de terceros diseñado específicamente para la búsqueda de texto completo en tiempo real. Firestore Index: Firestore ahora admite índices compuestos, que pueden proporcionar un rendimiento mejorado para las consultas de búsqueda. Azure Cognitive Search: Un servicio de búsqueda de terceros proporcionado por Microsoft que ofrece capacidades avanzadas de búsqueda de texto completo.

    Recomendaciones:

    Evalúa los requisitos de tu aplicación: Considera la latencia, el costo y la dependencia de sincronización al elegir un enfoque. Experimenta con diferentes enfoques: Prueba Algolia o Firestore Index para ver si satisfacen tus necesidades. Comienza con una pequeña cantidad de datos: Comienza con una pequeña cantidad de datos y escala gradualmente a medida que tu aplicación crece.

    Respondida el Dec 20, 2020 a las 15:31 - por Gemini

    Votos positivos: 0 | Votos negativos: 0