Elastic Search 通过比较不同文档中的相同字段进行过滤
在我的索引中,我有这样的文档:
{
"name": "name",
"createdAt": 1.6117508295E12
}
{
"name": "name1",
"createdAt": 1.6117508296E12
}
{
"name": "name",
"createdAt": 1.6117508297E12
}
我想以这种方式编写一个查询,以便我可以在任意两个文档之间的名称字段之间进行比较并获得唯一的结果。结果应该是这样的:
{
"name": "name1",
"createdAt": 1.6117508296E12
}
{
"name": "name",
"createdAt": 1.6117508297E12
}
我也在我的弹性查询中使用 from 和 size。 我尝试过使用折叠,但是根据大小,这给我带来的结果数量较少。
我使用的是弹性7.15.2
In my index, I have documents like this:
{
"name": "name",
"createdAt": 1.6117508295E12
}
{
"name": "name1",
"createdAt": 1.6117508296E12
}
{
"name": "name",
"createdAt": 1.6117508297E12
}
I want to write a query in such a way so that I can compare between between the name field between any 2 documents and get unique results. The result should be like this:
{
"name": "name1",
"createdAt": 1.6117508296E12
}
{
"name": "name",
"createdAt": 1.6117508297E12
}
I am also using from and size in my elastic query.
I have tried using collapse but that gives me less number of results as per the size.
I am using elastic 7.15.2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您只需使用 条款聚合与top_hits(大小=1,按createdAt排序)。以下是对您提供的示例数据的工作查询。
和搜索结果
You can simply use the terms aggregation with top_hits(with size=1, sorted by createdAt). Below is the working query on sample data your provided.
And search result