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

如何通过FSCrawler将自定义字段添加至PDF元数据并完成索引?

实现FSCrawler自定义PDF元数据与文档联合索引的步骤

你已经在配置文件中定义了自定义元数据字段,接下来需要完成元数据来源映射和重新索引两个核心步骤,具体操作如下:

1. 完善配置文件的元数据映射

FSCrawler需要明确自定义字段的数据源(是PDF文档自带的自定义属性,还是文件系统的扩展属性),你需要在配置的metadata块中添加value字段指定来源:

情况1:提取PDF文档内置的自定义元数据

如果你的PDF本身包含custom_field1、custom_field2这类自定义属性(可通过PDF阅读器的属性面板查看),修改配置如下:

metadata:
  custom_field1:
    type: text
    value: "${pdf.custom_field1}"  # 映射PDF内置的custom_field1属性
  custom_field2:
    type: keyword
    value: "${pdf.custom_field2}"  # 映射PDF内置的custom_field2属性

情况2:提取文件系统的扩展属性(以Linux为例)

如果元数据存储在文件的扩展属性中(比如Linux的user.custom_field1),配置改为:

metadata:
  custom_field1:
    type: text
    value: "${file.attributes.user.custom_field1}"  # 映射文件扩展属性
  custom_field2:
    type: keyword
    value: "${file.attributes.user.custom_field2}"

注意:YAML配置对缩进严格,确保每个层级的缩进一致(一般用2个空格)。

2. 重新执行索引命令

使用你原有的命令重新启动爬取,--restart参数会清空旧索引并重新生成包含自定义字段的新索引:

/usr/bin/fscrawler --config_dir /home/user1/conf test_index --restart --loop 1

3. 验证索引结果

通过Elasticsearch的查询接口检查文档是否包含自定义字段:

curl -X GET "http://localhost:9200/test_index/_search?q=*&size=1"

在返回的JSON结果中,查看_source节点下是否存在custom_field1和custom_field2字段。

额外注意事项

  • 确保PDF文档确实包含你要提取的自定义元数据,否则字段值会为null
  • 若需手动给PDF添加自定义元数据,可使用pdftk等工具批量处理
  • 建议使用FSCrawler的最新稳定版本,避免旧版本的兼容性问题

内容的提问来源于stack exchange,提问作者Manoj Agarwal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 09:07:21