elasticsearch - 如何通过值字段获取不同的文档
问题描述
我正在使用 ElasticSearch 6.3。
场景:数十万个文档中的大多数都有“123”字段,其中大多数值为“blabla”。少数人在那个领域有“blabla blo”。如果我设置 size: 10000 (如果默认大小,它们不会出现),它们会在查询结果中占据最后的位置。但我真的想要两个独特的记录:一个具有这些字段“123”:“blabla”,另一个具有字段“123”:“blabla blo”。我正在使用通配符并获取所有 10000 个文档。只需要这两个。我将提供一个带有这些记录的选择标签 HTML,但理想情况下只有两个!
查询正文:
{
"query": {
"wildcard":{
"324" : {
"value":"*b*"
}
}
},
"size": 10000,
"_source": ["324"]
}
我该怎么做?我想,这个概念类似于查找值在该字段中未完全重复的记录。谢谢
解决方案
这就是aggs的用途!
GET index_name/_search
{
"query": {
"wildcard": {
"324": {
"value": "*b*"
}
}
},
"size": 0,
"aggs": {
"324_uniques": {
"terms": {
"field": "324",
"size": 10
}
}
}
}
field
可能是324
OR 324.keyword
,具体取决于您的映射。
推荐阅读
- python - 在 Python 中具有计算值的格式化字符串
- javascript - 如何将对象和数组存储在一个对象中?
- olap - CSV 摄取上 Apache Druid 的数据摄取延迟
- vue.js - VueJS - 引导图标:无法解码下载的字体,sfntVersion 无效
- javascript - 为什么即使不满足条件,我的脚本仍会发送电子邮件?
- php - 如何从 My SQL 数据库中获取图像并将其添加到 .html 页面
- r - 删除 R 中第一个空格之前的所有内容
- python - 在python中使用数组索引更新数组
- android - Tasks.await 错误:“不存在类型变量的实例,因此 DataReadResponse 符合 DataReadResult”
- spring - 为什么 Spring Framework 文档的目录不见了?