ElasticSearch7.6.2 ingest-attachment 对于word,pdf等文件内容索引

请多多留言指教

ElasticSearch7.6.2服务器配置节点不在重复介绍,可查看文章。

Ingest-Attachment是一个开箱即用的插件,可以实现对(PDF,DOC等)主流格式文件的文本抽取及自动导入。

 

安装(可以手动下载插件包放入到es plugin目录下):

cmd 进入到elasticsearch bin目录下,执行以下命令,等待安装插件

elasticsearch-plugin install ingest-attachment

卸载:

cmd 进入到elasticsearch bin目录下,执行以下命令

elasticsearch-plugin remove ingest-attachment
 

kibana tool工具操作 使用ingest-attachment

建立ElasticSearch文件存储,用于检索文件名称、文件内容

1、建立文本抽取管道pipeline(全局执行一次即可使用)

PUT _ingest/pipeline/attachment
{
  "description": "Extract attachment information",
    "processors": [
      {
        "attachment": {
          "field": "data",
          "indexed_chars": -1,
          "ignore_missing": true
        }
      },
      {
        "remove": {
          "field": "data"
        }
      }
    ]
}

2、建立索引filedata

属性列:文件名称,文件扩展名,文件路径,读取的文件内容

PUT /filedata

{
  "mappings": {
    "properties": {
      "filename": {
        "type": "text",
          "analyzer": "ik_max_word"
      },
      "fileext": {
        "type": "keyword"
      },
      "filepath": {
        "type": "keyword"
      },
      "attachment.data": {
        "type": "text",
          "analyzer": "ik_max_word"
      }
    }
  }
}

3、kibana tool批量创建数据

PUT /filedata/_bulk?pipeline=attachment&pretty=true
{"index":{}}
{"filename":"小黑","fileext":"txt","filepath":"d:/tempfile", "data":"5LiJ5aSp5LiN5omT5LiK5oi/5o+t55OmIOS9oOivtOeahOWvueS4jeWvuQ=="}
{"index":{}}
{"filename":"小白","fileext":"txt","filepath":"d:/tempfile","data":"5Lit5Y2O5Lq65ZCN5YWx5ZKM5Zu9IOaIkeeahOelluWbvQ=="}

存储的数据如下:

 

4、通过IK分词插件查询

term根据IK分词查询,highlight高亮显示,此查询为根据文件名称查询

GET /filedata/_search
{
  "query": {
    "term": {
      "filename": {
        "value": "小"
      }
    }
  },
  "highlight": {
    "fragment_size": 40,
      "fields": {
      "filename": { }
    }
  }
}

查询结果如下图:

 

5、ingest-attachment 通过管道pipeline提取文本数据,根据文本内容查询

match根据属性查询,highlight高亮显示

GET /filedata/_search
{
  "query": {
    "match": {
      "attachment.content": "共和国"
    }
  },
  "highlight": {
    "fragment_size": 40,
      "fields": {
      "attachment.content": { }
    }
  }
}

查询结果如下

6、Elasticsearch bool过滤查询,match和term联合查询

GET /filedata/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "filename": {
              "value": "黑"
            }
          }
        },
        {
          "match": {
            "attachment.content": "共和国"
          }
        }
      ]
    }
  },
  "highlight": {
    "fragment_size": 100,
      "fields": {
      "attachment.content": { }
    }
  }
}

查询结果如下

 

到此ingest-attachment插件,安装,应用已完成(ingest-attachment应用体现在管道pipeline提取文本数据)。

注:在使用时,需要将其文本数据转成base64的编码,使用管道将其base64编码放入es 即可,ingest-attachment 会自动从你添加的base64的编码中提取文本放入 attament.content 中。

 

其它:应用nodejs操作ES命令

nodejs中@elastic/elasticsearch 读取word、pdf等文件内容存储到ES,并对其文本索引检索

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值