【问题标题】:Global Search functionality using Java and BigQuery使用 Java 和 BigQuery 的全局搜索功能
【发布时间】:2022-12-04 01:34:24
【问题描述】:
我的应用程序有一个搜索文本框,用户输入应在其中提供建议(预测搜索),当用户选择其中一个建议时,我必须从 BigQuery 的多个表中提取数据。
关于此实施的几个问题。
- 无法预加载建议,我必须根据每次击键触发 API 调用,就像 Google 一样,这会影响性能,但我必须在后端添加一些技术,如搜索索引。现在我正在使用通配符搜索拉取所有表,不确定从长远来看当数据量比现在大 10 倍时它是否真的有用。
我不是在寻找现成的代码。只需要指导,预加载是否真的可行?因为无法知道用户将在文本框中输入什么。
- Google Cloud Search 自动完成功能 (SearchApplication API) 可以与 BigQuery 一起使用吗?
请有任何建议。谢谢
我正在使用通配符搜索在所有表中搜索,使用 REGEX_CONTAINS() 进行预测搜索 API。
【问题讨论】:
标签:
java
angular
google-bigquery
spring-cloud-gcp-bigquery
【解决方案1】:
有多种方法可以使用 BigQuery 在您的应用程序中实施预测搜索。一种选择是使用正则表达式包含函数,它允许您对字符串执行正则表达式搜索。这对于实现预测搜索功能很有用,该功能会根据用户类型建议匹配结果。
要优化预测搜索功能的性能,您可以在 BigQuery 中使用搜索索引。搜索索引允许您预先计算查询结果并将它们存储在单独的表中。这可以显着提高查询的性能,尤其是对于涉及大型数据集或复杂搜索条件的查询。
另一种选择是使用 Google Cloud Search 自动完成功能,它允许您在用户输入搜索查询时提供建议。此功能建立在 Google Cloud Search 索引之上,Google Cloud Search 索引是一种可扩展的高性能搜索引擎,针对搜索查询进行了优化。
要将 Google Cloud Search 自动完成功能与 BigQuery 结合使用,您可以创建一个 Cloud Search 索引,其中包含 BigQuery 表中的数据。然后,您可以使用 Cloud Search API 查询索引并根据用户的输入向用户提供建议。这可以为您的应用程序中的预测搜索提供更高性能和可扩展的解决方案。
总体而言,使用 BigQuery 在您的应用程序中实施预测搜索有多种选择。您可以使用正则表达式包含功能、搜索索引或 Google Cloud Search 自动完成功能,具体取决于您的应用程序的具体要求和限制。