弹性搜索获取查询未获取更新信息

时间:2014-11-24 06:22:39

标签: elasticsearch

我需要更新用户信息并在更新后获取更新用户信息。这两个查询都有效。但是当我在更新查询后立即调用/ get时,它不会获取更新的信息。当我将2ms的超时时间正确地获取更新的信息。我是弹性搜索的新手,我不知道它的缓存更新信息,是否有任何方法可以立即获取查询中的更新信息?

更新查询

    var user = {};
user.first_name = "John updated" 
db.update({
            index: config.index_name,
            type: 'user',
            id: req.body.user_id,
            body: {
                doc: user
            }
        }, function (err, resp) {
            if (err) {
                return next(err);
            }
             db.search({
                index: config.index_name,
                type: 'user',
                body:  {
                    "query": {
                        "match": {
                            "_id": req.body.user_id
                        }
                    }
                }
            }, function (err, resp) {
                if (err) {
                    return next(err);
                }
                var data = {};       
                    data.creator_name = resp.hits.hits[0]._source.first_name 
                    // Here am not getting update first name "John updated" instead of getting John
            });
});

非常感谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用此处所述的Refresh参数: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-update.html

这将确保更新的文档立即在搜索结果中可用。

希望这有帮助!