导入方法
因为pdf被索引后虽然能搜索到文档内容,但是这里的需求是能够返回文档的名字
- 使用循环计算出每个文件的md5值,然后同时插入文件的md5值和文件名到数据库中
- 达到这种效果之后还需要在索引文件的手动设置id,取md5值
- 到这里,当我们从elasticsearch的索引中查询关键字并且选择打开的时候,可以取其id值在数据库中查询到对应的文件名称,即可实现打开搜索内容也显示对应的文件名
需求
elasticsearch不支持还原pdf文件,所以,上面描述的打开,实际上是显示搜索到的内容,并不能真正打开搜索到关键字的整个文档 这里,我们可以通过两个办法来实现:
- 当选择需要打开的搜索内容的时候取其id值,然后再次通过id值搜索,可以得到整个pdf文件的base64编码,再通过base64解码后即可以还原文件,这种方案只是手动尝试过,并没有实现
- 把文件的md5值名称状态的文件放入目录中,当打开搜索到的内容的时候,取其md5值,去匹配文件夹中的所有文件,匹配得到则显示即可
pdf的内容可以和文件名称可以转换为json格式的文档,经过elasticsearch索引后即可搜索,目前的方案是抽取mysql数据库的值和字段
其他问题
- elasticsearch在导入的时候值内不能有换行符,即每个记录从第一个字段到最后一个字段只能是一行,要求每行之前必须有索引和关键字,id则不是必须
- 满足上面的条件后即可通过POST方法接--data-binary @FILEA_NAME来导入json文件到索引中
需要搜索中文,并且分词,一定要提前在字段中设置好
评论