给定一组在一个字段中具有给定值的文档,我想知道有多少文档具有第二个字段的每个值.
我尝试使用以下查询的术语聚合来做到这一点:
{
"size": 0,
"filter": {
"term": {
"field1": "value"
}
},
"aggregations": {
"field2" : {
"terms" : { "field" : "field2" }
}
}
}
Run Code Online (Sandbox Code Playgroud)
但返回的计数显示整个索引中第二个字段的每个值的文档数,而不限于第一个字段具有给定值的文档.
我究竟做错了什么?
我有一组具有唯一数字运行ID的文档,我想找到运行ID最高的文档.
我可以做两个查询.
首先,我可以找到最高运行ID:
{
"size": 0,
"aggregations": {
"latest_run_id": {
"aggregations": {
"latest_run_id": {
"max": {"field": "run_id"}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
其次,我可以找到运行id的文件:
{
"filter": {
{"term": {"run_id": latest_run_id}}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法用一个查询来做到这一点?
在设置依赖于该信息的一堆服务之前,我需要从服务器获取一些信息(模式).
我的服务器提供了一个定义模型各种属性的模式.在我的角度代码中,我有一个获取此架构的服务:
services.factory('schema', function($q, $http) {
var deferred = $q.defer();
$http.get('schema/').then(function(response) {
schema = // some function of response.data
deferred.resolve(schema);
}, function() {
deferred.reject('There was a problem fetching the schema');
});
return deferred.promise;
});
Run Code Online (Sandbox Code Playgroud)
我想将架构对象而不是promise作为注入依赖于架构的其他服务.$ routeProvider允许我们为控制器执行此操作:
app.config(function($routeProvider) {
$routeProvider.
when('/', {
controller: 'SomeCtrl',
resolve: {
schema: 'schema'
},
...
});
});
Run Code Online (Sandbox Code Playgroud)
这允许我像这样定义SomeCtrl:
controllers.controller('SomeCtrl', function($scope, schema) {
// schema is an object
...
});
Run Code Online (Sandbox Code Playgroud)
但对于服务,我必须这样做:
services.factory('SomeService', function(schema) {
// schema is a promise
schema.then(function(schema) {
...
});
});
Run Code Online (Sandbox Code Playgroud)
有什么方法可以做到这一点吗?
我最近一直在使用asyncio,虽然我开始对它的工作原理有所了解,但我还是无法做到.我不确定是不是因为我的构造错误了,或者有什么理由说我为什么要做的事情没有意义.
简而言之,我希望能够迭代一个让步的asyncio.coroutine.例如,我希望能够做到这样的事情:
@asyncio.coroutine
def countdown(n):
while n > 0:
yield from asyncio.sleep(1)
n = n - 1
yield n
@asyncio.coroutine
def do_work():
for n in countdown(5):
print(n)
loop.run_until_complete(do_work())
Run Code Online (Sandbox Code Playgroud)
然而,这引起了asyncio的一个例外.我尝试了其他的东西,for n in (yield from countdown(5)): ...但是它也提供了类似的不透明的运行时异常.
我不能立即明白为什么你不应该做这样的事情,但是我已经达到理解正在发生的事情的极限.
所以:
如果这个问题不清楚,请告诉我!