我正在使用Couchbase作为Nosql数据库来存储网站的数据。我也使用Elasticsearch作为我的查询工具。我最近遇到了关于方面或分组结果的挑战。假设我的数据库中有7个文档
{
"id": "1",
"keywords": "red",
"owner_id": "a"
}
{
"id": "2",
"keywords": "red",
"owner_id": "a"
}
{
"id": "3",
"keywords": "red",
"owner_id": "a"
}
{
"id": "4",
"keywords": "red blue green",
"owner_id": "a"
}
{
"id": "5",
"keywords": "red blue",
"owner_id": "b"
}
{
"id": "6",
"keywords": "red blue",
"owner_id": "b"
}
{
"id": "7",
"keywords": "red blue green yellow",
"owner_id": "b"
}
当我在"red"
中搜索"keywords"
时,我会得到6个结果,每个得分。顺序如下:
1
2
3
5
6
4
7
我想要的是在"red"
中搜索"keywords"
,然后添加facet term "owner_id"
,facet size 2.它只返回
1
2
5
6
这意味着即使id“3”在匹配"red"
方面得分高于“5”和“6”,但由于它达到最大数量的doc可以从“a”类型返回,它不会是返回
我已尝试过facets,但它最后只给了我统计数据,仍然会返回所有文档。我读到了1.00 beta2中的聚合,仍然无法找到解决方法。关于我的任何想法都可以在一个查询中完成所有操作?