我正在尝试使用Elasticsearch(2.4)聚合对使用该查询的多个索引按“productId”分组
{
"from": 0,
"size": 0,
"min_score": 0.15,
"query": {
"filtered": {
"query": {
"bool": {
"should": [
{
"match_phrase_prefix": {
"keywords.family": {
"query": "low fat milk",
"fuzziness": 0.7,
"boost": 5
}
}
}
]
}
}
}
},
"aggs": {
"group_by_0": {
"terms": {
"field": "productId",
"size": 50
},
"aggs": {
"top_tag_hits": {
"top_hits": {
"size": 1
}
}
}
}
}
}
1) 我想按分数排序,所以我尝试使用
"order": {"_score": "desc"}
哪个返回
"type": "aggregation_execution_exception",
"reason": "Invalid term-aggregator order path [_score]. Unknown aggregation [_score]"
2) 此外,我正在尝试使用分页,“size”键实际起作用,但“from”键不起作用
**更新-聚合结果示例**
{
"took": 5108,
"timed_out": false,
"_shards": {
"total": 105,
"successful": 105,
"failed": 0
},
"hits": {
"total": 9963,
"max_score": 0,
"hits": []
},
"aggregations": {
"group_by_0": {
"doc_count_error_upper_bound": 69,
"sum_other_doc_count": 9779,
"buckets": [
{
"key": 98761,
"doc_count": 36,
"top_tag_hits": {
"hits": {
"total": 36,
"max_score": 0.36901662,
"hits": [
{
"_index": "retailer-1",
"_type": "product",
"_id": "1409421",
"_score": 0.36901662,
"_source": {
"productId": 98761
}
}
]
}
}
},
{
"key": 107459,
"doc_count": 36,
"top_tag_hits": {
"hits": {
"total": 36,
"max_score": 0.42744976,
"hits": [
{
"_index": "retailer-2",
"_type": "product",
"_id": "1402563",
"_score": 0.42744976,
"_source": {
"productId": 107459
}
}
]
}
}
}
]
}
}
}
希望有人能帮忙
尝试以下查询
{
"from": 0,
"size": 0,
"query": {
"filtered": {
"query": {
"bool": {
"should": [
{
"match_phrase_prefix": {
"keywords.family": {
"query": "low fat milk",
"fuzziness": 0.7,
"boost": 5
}
}
}
]
}
}
}
},
"aggs": {
"group_by_0": {
"terms": {
"field": "productId",
"size": 50
},
"aggs": {
"top_tag_hits": {
"top_hits": {
"size": 1,
"sort": [
{
"_score": {
"order": "desc"
}
}
]
}
}
}
}
}
}
这将按得分的降序排列热门歌曲。对于聚合桶上的分页,目前还不可能实现。可能在较新版本中获得此功能。
给java类一些东西 我有一张物品清单 我希望能够对它们进行排序,这样它们就可以按照每个父对象的虚数的累积和排序,然后再按照虚数排序。 所以我最终 我知道用parentKey和sum of noThings映射它是 我想,也许包装我的Something类并获得每个父项的总密钥可能会在某种程度上起作用。 但看起来工作量很大,不太优雅。 如有任何意见/想法,将不胜感激。
问题内容: 我有一张标签表,想从列表中获得计数最高的标签。 样本数据如下所示 使用 让我得到正在寻找的完美数据。但是,我想对它进行组织,以使最高的标签数排在首位,并限制它仅向我发送前20个左右。 我试过了 而且我不断收到“组功能的无效使用-ErrNr 1111” 我究竟做错了什么? 我正在使用MySQL 4.1.25-Debian 问题答案: 在所有版本的MySQL中,只需在SELECT列表中为聚
问题内容: 考虑Oracle表。我想用顶薪与获得职工和。还假定没有“ empno”列,并且主键涉及许多列。您可以使用以下方法执行此操作: 这可行,但我必须重复测试deptno = 20和job =’CLERK’,这是我想避免的。有没有更优雅的方式编写此代码,也许使用?顺便说一句,如果这很重要,我正在使用Oracle。 问题答案: 以下内容经过了精心设计,但对于“ top x”查询而言,这是一个很好
问题内容: 我希望能够从电子邮件表中选择一堆行并按发件人分组。我的查询如下所示: 该查询几乎可以按我希望的方式工作-它选择按电子邮件分组的记录。问题在于主题和时间戳记与特定电子邮件地址的最新记录不符。 例如,它可能返回: 当数据库中的记录是: 如果“编程问题”主题是最新的,那么在对电子邮件进行分组时如何使MySQL选择该记录? 问题答案: 一个简单的解决方案是将查询包裹与ORDER语句子选择 第一
在elasticsearch中,我可以在第二个聚合的数字字段上聚合和排序聚合。 例如。 但是,我想根据分类字段值对聚合进行排序。也就是说,字段2的值是(“a”、“b”、“c”)中的一个值——我想首先按所有文档对a1进行排序,字段2为:“a”,然后字段2为“b”,最后字段2为“c”。 在我的例子中,每个字段1都有一个唯一的字段2。所以我真的只想找到一种方法,按字段2对a1结果进行排序。
问题内容: 我是ElasticSearch的新手。 当前,我们正在将代码从关系数据库迁移到ElasticSearch。因此,我们正在将查询转换为ElasticSearch查询格式。 我正在寻找与以下查询等效的ElasticSearch- 有人可以为我提供上面的ElasticSearch查询示例吗? 问题答案: 根据上面的查询,您将拥有一个带有类型文档的索引,该文档的映射如下所示: 然后,相当于您上