【问题标题】:How to add an array as an attribute value in Algolia Search index?如何在 Algolia Search 索引中添加数组作为属性值?
【发布时间】:2020-07-24 21:26:13
【问题描述】:

我正在尝试将数组添加到 algolia 索引对象。我在 url 请求中使用参数来执行此操作。我已经确认参数按预期通过字符串数组。这是在 node.js 服务器的上下文中。

我尝试更新现有 algolia 索引对象的所有方法,它都无法正常工作。

最近我尝试循环 url 参数数组中的项目并逐个提交给 algolia,例如:

router.get('/update', (req, res) => {
    console.log("[ /algolia/update ]")
    console.log("req.query: " + JSON.stringify(req.query))

    const update = {
        objectID: req.query.id
    }
    req.query.array.forEach((item, i) => {
        update.array = {
            _operation: 'AddUnique',
            value: item
        }
        index.partialUpdateObject(update)
            .then(({ objectID }) => {
                console.log("Algolia update " + (i + 1) + " of " + req.query.array.length + " success")
            })
    })
})

我还尝试一次将整个数组添加到已经存在的对象中。这两种方法都没有奏效。有人知道这是怎么做到的吗?附言我目前正在使用邮递员进行测试

【问题讨论】:

    标签: node.js arrays algolia


    【解决方案1】:

    这应该不是必需的,您可以简单地使用:

    index.partialUpdateObject({
       objectID: req.query.id,
       array: req.query.array
    })
    

    【讨论】:

    • 我使用了AddUnique,因为每次更新用户类别时我都会添加一个完整的类别列表,并且只想要新添加的值,而不是复制所有以前的值。但它仍然没有在 algolia 仪表板@redox 中注册
    • 我现在可以使用您的 sn-p。但这会创建多个删除/写入吗?假设我在数组中有 3 个索引,然后更新它只保留一个索引,这个 sn-p 是否删除每个索引,并用一个写入替换它?从而创建 4 个计费事件? @氧化还原
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    相关资源
    最近更新 更多