如何使用 Cloud Function 将数据从 Firebase Firestore 索引到 Elastic App Search?
How to index data from Firebase Firestore to Elastic App Search using Cloud Function?
我在 firestore 中有用户生成的数据。对于全文搜索功能,我正在尝试使用弹性应用程序搜索。
我想部署云功能,因此每当在 firestore 中编写文档时,都需要触发一个函数,然后该函数将为文档编制索引。
const functions = require("firebase-functions");
const admin = require("firebase-admin");
const axios = require("axios");
admin.initializeApp(functions.config().firebase);
exports.createBPS = functions.firestore
.document("MyCollection/{docId}")
.onWrite((snap, context) => {
axios.post(
"https://myapp.ent.us-west1.gcp.cloud.es.io/api/as/v1/engines/myengine/documents?auth_token=private-aadsafdsfadsfdsafdafd",
snap.after.data()
);
});
如有任何帮助,我们将不胜感激。我正在使用以下内容开发移动应用程序
扑
火力地堡
弹性应用搜索
firestore 中的示例文档 {"id":"1234566", "name": "我的名字", "description": "我的描述"等...}
我会推荐使用官方的ES SDK。这将使您的代码更加稳定和易于阅读。
您可以在您的 firebase 扩展页面上查看以下指南。
(可选)回填或导入现有文档
此扩展仅发送已更改文档的内容——它不会将现有文档的完整数据集导出到 App Search。因此,要用集合中的所有文档回填数据集,您可以 运行 此扩展程序提供的导入脚本。
在 运行 运行脚本之前,首先按照此处的说明“为您的服务帐户生成私钥文件”进行操作。下载并保存为 serviceAccountKey.json.
GOOGLE_APPLICATION_CREDENTIALS= /path/to/your/serviceAccountKey.json \
COLLECTION_PATH=TodoItem \
INDEXED_FIELDS=content,isPublic, writerID \
ENTERPRISE_SEARCH_URL=https://todomateelastic.ent.us-central1.gcp.cloud.es.io \
APP_SEARCH_API_KEY= { your private app search API key here } \
APP_SEARCH_ENGINE_NAME=todomatecontent \
npx @elastic/app-search-firestore-extension import
我在 firestore 中有用户生成的数据。对于全文搜索功能,我正在尝试使用弹性应用程序搜索。 我想部署云功能,因此每当在 firestore 中编写文档时,都需要触发一个函数,然后该函数将为文档编制索引。
const functions = require("firebase-functions");
const admin = require("firebase-admin");
const axios = require("axios");
admin.initializeApp(functions.config().firebase);
exports.createBPS = functions.firestore
.document("MyCollection/{docId}")
.onWrite((snap, context) => {
axios.post(
"https://myapp.ent.us-west1.gcp.cloud.es.io/api/as/v1/engines/myengine/documents?auth_token=private-aadsafdsfadsfdsafdafd",
snap.after.data()
);
});
如有任何帮助,我们将不胜感激。我正在使用以下内容开发移动应用程序 扑 火力地堡 弹性应用搜索
firestore 中的示例文档 {"id":"1234566", "name": "我的名字", "description": "我的描述"等...}
我会推荐使用官方的ES SDK。这将使您的代码更加稳定和易于阅读。
您可以在您的 firebase 扩展页面上查看以下指南。
(可选)回填或导入现有文档 此扩展仅发送已更改文档的内容——它不会将现有文档的完整数据集导出到 App Search。因此,要用集合中的所有文档回填数据集,您可以 运行 此扩展程序提供的导入脚本。
在 运行 运行脚本之前,首先按照此处的说明“为您的服务帐户生成私钥文件”进行操作。下载并保存为 serviceAccountKey.json.
GOOGLE_APPLICATION_CREDENTIALS= /path/to/your/serviceAccountKey.json \
COLLECTION_PATH=TodoItem \
INDEXED_FIELDS=content,isPublic, writerID \
ENTERPRISE_SEARCH_URL=https://todomateelastic.ent.us-central1.gcp.cloud.es.io \
APP_SEARCH_API_KEY= { your private app search API key here } \
APP_SEARCH_ENGINE_NAME=todomatecontent \
npx @elastic/app-search-firestore-extension import