javascript - 使用 Firebase 函数将数据索引到 ElasticSearch,并非所有字段都被索引

标签 javascript elasticsearch firebase-realtime-database google-cloud-functions

我正在使用 Firebase 函数将数据推送到 ElasticSearch 进行索引。但有时数据集没有完全索引。哪些字段可以被索引似乎是一种随机行为,有时所有字段都被索引,有时只有几个,有时只有一个。

我用来将数据推送到Elasticsearch的firebase函数如下:

exports.indexHashtagsToElastic = functions.database.ref('/valid_hashtags/{hashtag_id}')
.onWrite(event =>{

    let hashtagData = event.data.val();
    let hashtag_id = event.params.hashtag_id;

    console.log('Indexing the hashtags: ', hashtagData);

    let elasticSearchConfig = functions.config().elasticsearch;
    let elasticSearchUrl = elasticSearchConfig.url + 'hashtags/hashtag/' + hashtag_id;
    let elasticSearchMethod = hashtagData ? 'POST' : 'DELETE';

    let elasticSearchRequest = {
        method: elasticSearchMethod,
        url: elasticSearchUrl,
        auth:{
            username: elasticSearchConfig.username,
            password: elasticSearchConfig.password
        },
        body: hashtagData,
        json: true
    };

    return request(elasticSearchRequest).then(response => {
        console.log("ElasticSearch response", response);
    });

});

根据此日志 console.log('Indexing the hashtags: ', hashtagData); 有时数据集未完整传输。然而,在数据库上创建的数据集是完整且正确的。

知道这里出了什么问题吗?谢谢!

最佳答案

您需要指定要根据您的请求建立索引的字段。

let elasticSearchFields = ['field1','field2','field3',...'fieldn'];

然后在您的请求中您应该添加以下内容

...
body:  _.pick(hashtagData , elasticSearchFields ),
...

希望能成功

关于javascript - 使用 Firebase 函数将数据索引到 ElasticSearch,并非所有字段都被索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48168278/

相关文章:

javascript - Jquery bootstrap 意外输出,控制台除外

javascript - 动画的问题

java - 如何将输出格式化为正确的 json 格式?

java - 显示来自 listview onitemclick Android Studio 的详细 Firebase 数据

javascript - ReduxReducer - 根据 id 过滤数组,然后更改键/值对

java - Elastic Search for Spring Boot 2.1.3的最新稳定版本

elasticsearch - Elasticsearch查询文档,其中两个位置具有相对距离

Firebase 存储安全

ios - 如何从 UItableview 中删除单元格,当它在 onChildRemoved 方法中从 Firebase 中删除时?

php - 选中时在文本字段对话框中显示值