我注意到很多关于COM的书籍等都指出,在COM聚合中实现一个可以用作内部对象的对象相对容易。但是,除非我遗漏了一些东西,否则聚合似乎只能在极其有限的场景中成功,因此只有在明确认识到这种场景时才应提供对它的支持。
困扰我的部分如下。COM 聚合将内部对象的标识与外部对象的标识组合在一起。外部对象的实现者选择内部对象接口的子集,并将对这些接口的请求转发给内部对象。内部对象将所有对接口的请求转发到外部对象。现在假设内部对象作为其实现的一部分构造子 COM 对象。据推测,一个接口指针被传递给该 COM 对象,以便它可以与其父对象进行通信。内部对象对其实现的接口有一些了解。然而,外部对象可能选择不转发其中一些接口。事实上,文档指出外部对象不应盲目转发接口。这似乎意味着内部对象通常不能将接口指针传递给其他 COM 对象,除非特别要求外部对象将所有这些接口转发给内部对象。这不限于子对象场景。实际上,内部对象实现传递接口指针的任何地方似乎都可能受到影响。
因此,聚合似乎不是通用目的,因为——在内部对象必须与其他 COM 对象通信的情况下——它对外部对象提出了严格的要求,即必须最少转发哪些接口,并且不能将更多接口添加到这个列表在内部对象的未来版本中不会破坏与不转发这些接口的现有外部对象的兼容性。
这是对事物实际情况的正确(并且很少被记录)描述还是故事有更多内容?
我有这样的数据:
Id GroupId 更新日期
1 1 2013-11-15T12:00:00
2 1 2013-11-20T12:00:00
3 2 2013-12-01T12:00:00
4 2 2013-13-01T10205:
3 -11-01T12:00:00
6 3 2013-10-01T12:00:00
我如何编写查询以将过滤/分组的列表返回到每个组的最大 UpdateDate?最终列表按 UpdateDate 降序排序。
我希望这个输出:
Id GroupId
更新日期 4 2 2013-13-01T12:00:00
2 1 2013-11-20T12:00:00
6 3 2013-10-01T12:00:00
谢谢你 :)
我是ElasticSearch的新手,所以我需要一些帮助.
我有一个查询来搜索products哪些可以属于许多categories.Categories在嵌套树中组合.
示例数据:
categories: [
{
id: 1,
name: 'First category',
categories:[
{
id: 12,
name: 'First subcategory'
},
{
id: 13,
name: 'Second subcategory'
}
]
},
{
id: 2,
name: 'Second category'
}
],
products: [
{
id: 1,
name: 'First product',
categories_ids: [2, 12]
},
{
id: 2,
name: 'Second product',
categories_ids: [1]
}
]
Run Code Online (Sandbox Code Playgroud)
除了搜索结果之外,我还需要获取categories树,包括每个搜索结果的数量category(不包括任何搜索结果的类别).
对于上面的例子,它应该是:
有人可以解释如何使用ElasticSearch的聚合来做到这一点吗?
谢谢.
在 Elasticsearch 中,我们使用了术语 facet 和术语聚合来解决上述问题。不幸的是,这肯定适用于小数据集。但我们正在处理大约 1000 万份文件的数据。
因此,当我们通过使用聚合(设置“大小”:0)或方面(使用“排除”)查询以获取字段(例如公司字段)的所有唯一值时,我们将无法获得整个结果拉紧。似乎 elasticsearch 需要很多时间来响应,最终导致节点故障。
此过程的唯一目的是计算字段中存在多少唯一值(例如公司、唯一公司的数量)。
任何建议将是可观的。
例如,我需要按星期和小时分组获取一些数据
curl -XGET http://localhost:9200/testing/hello/_search?pretty=true -d '
{
"size": 0,
"aggs": {
"articles_over_time" : {
"date_histogram" : {
"field" : "date",
"interval" : "hour",
"format": "E - k"
}
}
}
}
'
Run Code Online (Sandbox Code Playgroud)
给我这个:
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 2857,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"articles_over_time" : {
"buckets" : [ {
"key_as_string" : "Fri …Run Code Online (Sandbox Code Playgroud) 我需要按如下方式聚合数组
两个文档示例:
{
"_index": "log",
"_type": "travels",
"_id": "tnQsGy4lS0K6uT3Hwzzo-g",
"_score": 1,
"_source": {
"state": "saopaulo",
"date": "2014-10-30T17",
"traveler": "patrick",
"registry": "123123",
"cities": {
"saopaulo": 1,
"riodejaneiro": 2,
"total": 2
},
"reasons": [
"Entrega de encomenda"
],
"from": [
"CompraRapida"
]
}
},
{
"_index": "log",
"_type": "travels",
"_id": "tnQsGy4lS0K6uT3Hwzzo-g",
"_score": 1,
"_source": {
"state": "saopaulo",
"date": "2014-10-31T17",
"traveler": "patrick",
"registry": "123123",
"cities": {
"saopaulo": 1,
"curitiba": 1,
"total": 2
},
"reasons": [
"Entrega de encomenda"
],
"from": [
"CompraRapida"
] …Run Code Online (Sandbox Code Playgroud) 有多少书自相矛盾,让我抓狂。
Class A {} class B {void UseA(A a)} //some say this is an association,
no reference is held but communication is possible
Class A {} class B {A a;} //some say this is
aggregration, a reference is held
Run Code Online (Sandbox Code Playgroud)
但是很多人说持有引用仍然只是一个关联,并且为了聚合他们使用一个列表 - 恕我直言,这是一样的,它仍然是一个引用。
我很困惑,我想了解这个问题。
例如这里:http : //aviadezra.blogspot.cz/2009/05/uml-association-aggregation-composition.html - 强关联和聚合之间的区别是什么,在这两种情况下,作者都使用一个字段来存储引用。 .
另一个例子:这据说是关联:

这被称为聚合:

public class Professor {
// ...
}
public class Department {
private List<Professor> professorList;
// ..
}
Run Code Online (Sandbox Code Playgroud)
再次,有什么区别?它是两种情况下的参考
我正在按标签聚合产品搜索结果,标签有名称和 ID 字段。如何将两个字段都返回到聚合存储桶中?我可以得到一个,但我不知道如何得到两个。顺便说一句,我的集群上的脚本访问已关闭,因此我无法使用它。
这是我的产品映射(针对此问题进行了简化):
"mappings": {
"products": {
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"topics": {
"properties": {
"id": {
"type": "string",
"index": "not_analyzed"
},
"name": {
"type" : "string",
"index": "not_analyzed"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的查询:
"query": {
"multi_match": {
"query": "Testing 1 2 3",
"fields": ["title", "description"]
},
"aggs": {
"Topics": {
"terms": {
"field": "topics.id",
"size": 15
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的聚合桶如下所示:
...第一个桶中的“键”值是topics.id 字段值。有没有办法将我的 topic.name 字段添加到存储桶?
我正在使用 Java instanceof,但它似乎不起作用。
我有三个扩展 Hero 类的 Java 类。
该Hero.java类:
public abstract class Hero {
protected int health;
public Hero() {
}
}
Run Code Online (Sandbox Code Playgroud)
其他三类:
public class Archer extends Hero {
public Archer() {
}
}
public class Mage extends Hero {
public Mage() {
}
}
public class Warrior extends Hero {
public Warrior() {
}
}
Run Code Online (Sandbox Code Playgroud)
我有这个主类WelcomeScreen.java
public class WelcomeScreen {
private Archer archer;
private Mage mage;
private Warrior warrior;
private Hero …Run Code Online (Sandbox Code Playgroud) 我想通过“类别”字段中的不同键来汇总我的文档。这是两个文件:
"date": 1470271301,
"categories": {
"1": [blabla],
"2": [blala]
}
"date": 144343545,
"categories": {
"1": [blabla],
"2": [coco]
"3": [rat, saouth]
}
Run Code Online (Sandbox Code Playgroud)
类别映射:
"categories" : {
"properties" : {
"1" : {
"type" : "long"
Run Code Online (Sandbox Code Playgroud)
我想得到这样的东西:
"buckets" : [ {
"key" : "1",
"doc_count" : 2
}, {
"key" : "2",
"doc_count" : 2
{
"key" : "3",
"doc_count" : 1
}
Run Code Online (Sandbox Code Playgroud)
在不更改文档映射的情况下,有什么好方法吗?
aggregation ×10
java ×2
arrays ×1
associations ×1
com ×1
diagramming ×1
facet ×1
facets ×1
filter ×1
grouping ×1
instanceof ×1
json ×1
oop ×1
polymorphism ×1
uml ×1