You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置delimitedText解析器:单CSV文件生成单索引文档并支持分面搜索

实现单个CSV文件生成一个索引文档并支持分面搜索

完全可以实现你的需求,核心思路是通过Ingest Pipeline结合delimited_text解析器与聚合处理器,先解析CSV每行数据,再将同一文件的所有行字段聚合为数组,最终生成单个文档,同时数组字段天然支持分面搜索。

具体配置步骤

1. 创建Ingest Pipeline

定义一个流水线,先解析CSV每行,再将同一文件的行聚合为单文档:

PUT _ingest/pipeline/csv-file-to-single-doc
{
  "description": "Parse CSV rows then aggregate into one doc per file",
  "processors": [
    {
      "delimited_text": {
        "field": "message",
        "separator": ",",
        "target_fields": ["category", "product", "price"],
        "ignore_missing": true,
        "skip_header": true // 如果CSV有表头,添加此配置跳过第一行
      }
    },
    {
      "aggregate": {
        "group_by": "_source.file.path", // 按文件路径分组,确保同一文件的行聚合到一起
        "aggregations": {
          "categories": {
            "collect": {
              "field": "category"
            }
          },
          "products": {
            "collect": {
              "field": "product"
            }
          },
          "prices": {
            "collect": {
              "field": "price"
            }
          }
        }
      }
    },
    {
      "remove": {
        "field": ["message", "category", "product", "price"] // 移除临时解析字段
      }
    }
  ]
}

2. 索引CSV文件时指定流水线

无论是通过Filebeat采集还是直接API上传,指定上述流水线即可:

# 示例:API上传CSV内容并应用流水线
PUT my-csv-index/_doc/my-file?pipeline=csv-file-to-single-doc
{
  "file": {
    "path": "/data/store/products.csv"
  },
  "message": "category,product,price\nelectronics,laptop,999\nclothes,t-shirt,29\nelectronics,phone,699"
}

3. 验证分面搜索能力

索引完成后,可通过terms聚合实现分面搜索,比如统计各分类的分布:

POST my-csv-index/_search
{
  "size": 0,
  "aggs": {
    "category_facet": {
      "terms": {
        "field": "categories.keyword" // 使用keyword类型字段做分面聚合
      }
    }
  }
}

关键说明

  • aggregate处理器通过文件路径分组,确保同一文件的所有行数据被收集为数组字段,最终输出单个文档。
  • 数组类型字段在分面搜索时,Elasticsearch会自动将数组中的每个值作为独立条目参与聚合,完全适配分面需求。
  • 若CSV分隔符不是逗号,可修改delimited_text中的separator参数适配。

内容的提问来源于stack exchange,提问作者Fred Goulet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 23:22:10