nav*_*ins 10 ranking elasticsearch
首先创建一些示例数据(e1,e2,e3是类型,test是索引名称):
PUT test/e1/1
{
"id":1
"subject": "subject 1"
}
PUT test/e2/1
{
"id":1
"subject": "subject 2"
}
PUT test/e3/2
{
"id":2
"subject": "subject 3"
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:我怎样才能得到这两个数据?删除结果中具有相同ID的重复数据curl -XGET _search.
test/e1/1
{
"id":1
"subject": "subject 1"
}
test/e3/2
{
"id":2
"subject": "subject 3"
}
Run Code Online (Sandbox Code Playgroud)
小智 12
首先,您需要搜索多个索引.
然后,在结果上删除重复的ID.
POST http://myElastic.com/test/e1,e2,e3/_search
{
"aggs":{
"dedup" : {
"terms":{
"field": "id"
},
"aggs":{
"dedup_docs":{
"top_hits":{
"size":1
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这可能对您有所帮助:
查看“字段折叠” - 它旨在为每个“字段”提供 1 个搜索结果。
GET /test/_search
{
"collapse": {
"field": "id"
}
}
Run Code Online (Sandbox Code Playgroud)
在将此功能添加到 Elasticsearch 之前,使用热门点击的术语聚合是实现此目的的最佳方法。
| 归档时间: |
|
| 查看次数: |
17001 次 |
| 最近记录: |