elasticsearch - Elasticsearch 查询 + Agg 搜索查询
问题描述
我的 elasticsearch 中的数据包含一个名为facilityName
. 我有一个要求,我必须查看是否有任何重复记录facilityNameTypeCode
为“UWI”并且具有相同的facilityName
值。下面是一个结构示例:
"facilityName": [
{
"facilityNameTypeId": {
"facilityNameTypeCode": "Name"
},
"facilityName": "Rishav jayswal"
},
{
"facilityNameTypeId": {
"facilityNameTypeCode": "Name"
},
"facilityName": "R.M"
}
]
这是我创建的查询:
GET _search
{
"query" : {
"term" : {"facilityName.facilityNameTypeId.facilityNameTypeCode" : "UWI"}
},
"aggs" : {
"duplicateNames": {
"terms": {
"field": "facilityName.facilityName",
"size": 0,
"min_doc_count": 2
}
}
}
}
但我有这个错误:
{
"error": {
"root_cause": [
{
"type": "parsing_exception",
"reason": "[terms] failed to parse field [size]",
"line": 10,
"col": 27
}
],
"type": "parsing_exception",
"reason": "[terms] failed to parse field [size]",
"line": 10,
"col": 27,
"caused_by": {
"type": "illegal_argument_exception",
"reason": "[size] must be greater than 0. Found [0] in [duplicateNames]"
}
},
"status": 400
}
谁能建议如何做到这一点?
解决方案
错误很明显
[size] 必须大于 0。在 [duplicateNames] 中找到 [0]
因此,只需将 size 设置为大于 0 的值,无论如何将其设置为 0 没有多大意义
"terms": {
"field": "facilityName.facilityName",
"size": 10,
"min_doc_count": 2
}
推荐阅读
- groovy - 具有大量多实例进程和就绪状态的 Camunda 引擎行为
- java - 在 ubuntu 18.04 上安装 DR java
- applescript - 在 txt 文件中搜索和删除特定的文本行 - applescript
- java - XPath:以不同方式定义的节点
- flutter - 如何存储多维数组并在颤振中使用 sqflite 获取?
- python - 数据框中日期的平均值
- scala - 水平展开或旋转 spark scala 数据框以创建大型平面数据框
- android - 在 recyclerView 中使用 ItemTouchHelper 时出现 java.lang.IndexOutOfBoundsException 错误?
- angular9 - 无法使用 Angular 9 在 ie9 中导出 xlsx 文件
- elasticsearch - 我如何通过在 Elasticsearch 中出现的频率来限制结果