fscrawler是ES的一个文件导入插件,只需要简单的配置就可以实现将本地文件系统的文件导入到ES中进行检索,同时支持丰富的文件格式(txt.pdf,html,word...)等等。下面详细介绍下fscrawler是如何工作和配置的。

一、fscrawler的简单使用:

1、下载: wget https://repo1.maven.org/maven2/fr/pilato/elasticsearch/crawler/fscrawler/2.2/fscrawler-2.2.zip

2、解压:  unzip fscrawler-2.2.zip  目录如下:bin下两个脚本,lib下全部是jar包。

3、启动: bin/fscrawler job_name job_name需要自己设定,第一次启动这个job会创建一个相关的_setting.json用来配置文件和es相关的信息。如下:

  • 编辑这个文件: vim ~/.fscrawler/job_1/_settting.json 修改如下:
  • name表示的是一个job的name同时也是ES数据的的index,URL:代表需要导入的文件所在的文件夹。update_rate:表示多久刷新一次,host:连接es的IP地址和端口号。type:代表的就是ES的type。改完之后保存就可以运行,fs就会将数据导入了。

  • 导入数据(会开启一个线程,根据设定的时间进行数据刷新,我们修改文件ES也能得到新的数据):bin/fscrawler job_name

二、fscrawler配置IK分词器和同义词过滤:

  • 初始化一个job后系统会生成三个配置文件:doc.json,folder.json,_setting.json(1,2,5代表ES的版本号,我们是5.x版本就修改5文件夹下的配置文件。)这三个文件用来创建index,mapping。
  • 配置IK分词首先在_default/5/_setting.json中配置analysis:删掉原有的配置文件,添加如下内容:
  • {"settings": {"analysis": {"analyzer": {"by_smart": {"type": "custom","tokenizer": "ik_smart","filter": ["by_tfr","by_sfr"],"char_filter": ["by_cfr"]},"by_max_word": {"type": "custom","tokenizer": "ik_max_word","filter": ["by_tfr","by_sfr"],"char_filter": ["by_cfr"]}},"filter": {"by_tfr": {"type": "stop","stopwords": [" "]},"by_sfr": {"type": "synonym","synonyms_path": "analysis/synonyms.txt"}},"char_filter": {"by_cfr": {"type": "mapping","mappings": ["| => |"]}}}}
    }

    跟前面几篇博客中提到的自定义分词器创建同义词过滤一模一样,里面的filter可以选择删除,保留必要的部分,这样我们自定义了两种分词器:by_smart,by_max_word.

  • 修改_default/5/doc.json:删除掉所有字段的分词器;analyzer:"xxx",因为在这里只有一个字段需要分词那就是content(文件的内容),给content节点添加加分词器。如下:
  • "content" : {"type" : "text","analyzer":"by_max_word" #添加此行。。。},

  • 配置就完成了,同样的再次启动job: bin/fscrawler job_name
  • 访问9100:可以看到index已经创建好,如下图:
  • 同义词查询:我在同义词中配置了西红柿和番茄,在/tmp/es文件夹下中添加了一个包含西红柿和番茄的文件,9100端口用以下语句查询:
  • {"query": {"match": {"content": "番茄"}},"highlight": {"pre_tags": ["<tag1>","<tag2>"],"post_tags": ["</tag1>","</tag2>"],"fields": {"content": {}}}
    }

    结果如下:

  • {"hits": [{"_index": "jb_8","_type": "doc","_id": "3a15a979b4684d8a5d86136257888d73","_score": 0.49273878,"_source": {"content": "我爱吃西红柿鸡蛋面。还喜欢番茄炒蛋饭","meta": {"raw": {"X-Parsed-By": "org.apache.tika.parser.DefaultParser","Content-Encoding": "UTF-8","Content-Type": "text/plain;charset=UTF-8"}},"file": {"extension": "txt","content_type": "text/plain;charset=UTF-8","last_modified": "2017-05-24T10: 22: 31","indexing_date": "2017-05-25T14: 08: 10.881","filesize": 55,"filename": "sy.txt","url": "file: ///tmp/es/sy.txt"},"path": {"encoded": "824b64ab42d4b63cda6e747e2b80e5","root": "824b64ab42d4b63cda6e747e2b80e5","virtual": "/","real": "/tmp/es/sy.txt"}},"highlight": {"content": ["我爱吃<tag1>西红柿</tag1>鸡蛋面。还喜欢<tag1>番茄</tag1>炒蛋饭"]}}]
    }

  • 完整的IK分词同义词过滤就配置完成了。

  • 如下图是txt,html格式,其他格式亲测可用,但是文件名中文会乱码。

注意:

  要选择fs2.2的版本,2.1的版本在5.3.1的ES上连接失败。

转载于:https://www.cnblogs.com/NextNight/p/6904791.html

[大数据]-Fscrawler导入文件(txt,html,pdf,worf...)到Elasticsearch5.3.1并配置同义词过滤...相关推荐

  1. R—读取数据(导入csv,txt,excel文件)

    R-读取数据(导入csv,txt,excel文件) 转自:http://www.cnblogs.com/zhangduo/p/4440314.html 导入CSV.TXT文件 read.table函数 ...

  2. MYSQL数据库导入大数据量sql文件失败的解决方案

    最快办法:执行下方语句,单次有效. SET GLOBAL max_allowed_packet=30*1024*1024 如果想彻底更改,在安装mysql的文件夹下找到my.ini 文件,在文件末尾添 ...

  3. mysql大数据量导入

    mysql大数据量导入 mysql大数据量导入 数据生成 测试数据5000万 import java.io.*; import java.util.Random;public class Genera ...

  4. Java实现excel大数据量导入

    情景分析: 通常我们通过poi读取excel文件时,若在用户模式下,由于数据量较大.Sheet较多,很容易出现内存溢出的情况 用户模式读取excel的典型代码如下: FileInputStream f ...

  5. 大数据批量下载文件 代码

    大数据批量下载文件 代码 # # 大数据批量下载文件 from multiprocessing import Process import os import pandas as pd import ...

  6. SQL Server 大数据搬迁之文件组备份还原实战

    SQL Server 大数据搬迁之文件组备份还原实战 原文:SQL Server 大数据搬迁之文件组备份还原实战 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景( ...

  7. 【中台实践】滴滴大数据研发中台的最佳实践.pdf(附下载链接)

    今天给大家分享滴滴高级技术专家曾文秋在2019中国大数据技术大会(BDTC)上做的分享<滴滴大数据研发中台的最佳实践.pdf>,分享包括四个方面:1.滴滴大数据发展史:2.一站式大数据研发 ...

  8. 【电子书分享】决战大数据-驾驭未来商业的利器.pdf(附下载链接)

    今天给大家分享一本实用的图书<决战大数据-驾驭未来商业的利器.pdf>,该书由大数据实践的先行者.阿里巴巴集团副总裁.数据委员会会长车品觉所著,全书由两大部分十一个章节组成,第一部分为从数 ...

  9. POI3.8解决导出大数据量excel文件时内存溢出的问题

    POI3.8解决导出大数据量excel文件时内存溢出的问题 参考文章: (1)POI3.8解决导出大数据量excel文件时内存溢出的问题 (2)https://www.cnblogs.com/feng ...

最新文章

  1. linux maps,linux下/proc/pid/maps和pmap命令详解
  2. Objective-c在宏里拼接字符串
  3. php dom xml解析,Php Xml解析之DOMDocument使用方法浅解
  4. Windows 2000本地路由表
  5. 查询SQLSERVER执行过的SQL记录(历史查询记录)
  6. linux 日志定时轮询流程详解(logrotate)
  7. kaffe java_Java虚拟机Kaffe的研究与实现
  8. 为iOS Vision盒子架构建Core ML管道(五)
  9. 将10个成绩排序java程序_快速排序——成绩排序
  10. 【狂神css笔记】CSS介绍选择器
  11. Telnet 工具远程连接服务器
  12. ISP—图像调试实习生(第14天)
  13. Python与HTML倾情打造情人节示爱网站:愿天下有情人终成眷属!
  14. FHD、4K、8K为何物
  15. Win7系统下安装微磁学软件OOMMF方法
  16. y4m文件转换成yuv
  17. BufferedImage是什么意思?
  18. 斩获技术向善奖,云开发上榜 2020 中国技术品牌影响力企业
  19. 2022下半年教资已经开始注册,1分钟看懂证件照审核要求
  20. 墨迹天气电脑版官方版 v1.0.1.5 最新版​

热门文章

  1. AGS Server 10.1 切图工具
  2. java并发编程-Executor框架
  3. 史上最全搞怪WC标志(组图)--设计者太有才了。
  4. es6 --- 使用node的memoryUsage检测WeakMap()
  5. 淘宝top平台调用接口响应时间优化
  6. 监控工具之zabbix server3.4 部署配置
  7. 小程序开发-利用canvas实现保存二维码海报到本机
  8. python进阶10 MySQL补充 编码、别名、视图、数据库修改
  9. JS实现css属性动画效果
  10. 数据中心不再有空调、风扇等冷却装置会怎样?