У меня есть поле, в котором хранится массив строк. разные документы содержат разный набор строк.
ex: "ftypes": ["PDF", "TXT", "XML"]
теперь я использовал этот агрегационный запрос для анализа использования каждого типа файла.
{
"aggs": {
"list": {
"terms": {
"field": "ftypes",
"min_doc_count": 0,
"size": 100000
}
}
}
}
result ==>
{
"took": 11,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 137265,
"max_score": 0.0,
"hits": []
},
"aggregations": {
"list": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "PDF",
"doc_count": 134475
},
{
"key": "TXT",
"doc_count": 21312
},
{
"key": "XML",
"doc_count": 6597
},
{
"key": "JPG",
"doc_count": 1233
}
]
}
}
}
и результаты были правильными, как и ожидалось. но недавно я обновил это поле после удаления поддержки файлов XML. поэтому не из do c имеет тип файла XML. Я могу подтвердить это из этого запроса.
{
"query": {
"terms": {
"ftypes": ["XML"]
}
}
}
result ===>
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
общее количество совпадений равно нулю. Странно то, что когда я снова выполняю вышеуказанный агрегационный запрос, я вижу XML как термин. do c count равно нулю.
{
"took": 11,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 137265,
"max_score": 0.0,
"hits": []
},
"aggregations": {
"list": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "PDF",
"doc_count": 134475
},
{
"key": "TXT",
"doc_count": 21312
},
{
"key": "JPG",
"doc_count": 1233
},
{
"key": "XML",
"doc_count": 0
}
]
}
}
}
откуда теперь берется этот XML термин, если он не существует ни в одном документе ?. есть ли кеш, который мне нужно удалить?