我正在使用Spark Streaming将HTTP请求聚合到HTTP会话中,并根据会话ID以upsert模式将会话索引到Elasticsearch中。每个会话都包含一个实时计算和更新的机器人分数。 我想将机器人分数传播到属于同一会话的所有HTTP请求。我有办法实时对已编入索引的HTTP请求执行此类更新吗?
答案 0 :(得分:1)
ElasticSearch(目前)不支持UPDATE WHERE
类型查询。
您必须分两步完成此操作。
POST /sessions/1/_update
{
"doc" : {
"score": 22
}
}
URL中的1是您要更新的文档ID。 _update操作将保留任何现有字段并只更新分数(尽管不是_update严格来说不是真的,因为它将使用当前字段值创建一个新文档并删除旧文档,但对于您的情况则不相关语义)。