我有一个用例,其中并发更新请求命中我的Elasticsearch集群.为了确保在较新的事件已经到达集群之后,陈旧事件(由较新的请求无关的事件)不更新文档,我想传递一个带有更新请求的脚本来比较字段确定传入请求是否相关.请求看起来像这样:
curl -XPOST 'localhost:9200/test/type1/1/_update' -d '
{
"script": " IF ctx._source.user_update_time > my_new_time THEN do not update ELSE proceed with update",
"params": {
"my_new_time": "2014-09-01T17:36:17.517""
},
"doc": {
"name": "new_name"
},
"doc_as_upsert": true
}'
Run Code Online (Sandbox Code Playgroud)
我在Elasticsearch的"脚本"字段中写的伪代码是可能的吗?如果是这样,我会喜欢一些语法帮助(groovy,python或javascript).
任何替代方法建议也将受到高度赞赏.
我目前正在开展一个项目,我们正在使用NGINX和Phusion Passenger.我已经做了一些关于如何使用不同配置进行最佳优化的研究,但我仍然不明白增加NGINX工作进程的数量如何适应场景.似乎优化更大负载的真正因素是增加乘客流程的数量.
有没有人能够了解1个NGINX工人流程与50个错误乘客流程之间的差异与2个NGINX工作流程之间的区别是什么?
partial_fields执行nested过滤/查询时是否可以使用该参数?
例如,此查询将仅返回我要查找的字段hits:
{
"query": {
"filtered": {
"query": {
"ids": {
"type": "users",
"values": [
"111"
]
}
},
"filter": {
"nested": {
"path": "entitlements",
"filter": {
"bool": {
"must": [
{
"term": {
"program": "program-a"
}
}
]
}
},
"inner_hits": {
"size": 999
}
}
}
}
},
"partial_fields": {
"partial": {
"include": [
"entitlements.accountNumber",
"entitlements.name",
"entitlments.numbers"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是该inner_hits部分没有返回任何字段.
"inner_hits": {
"entitlements": {
"hits": {
"total": 1,
"max_score": …Run Code Online (Sandbox Code Playgroud)