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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字幕小工具 SubTool Released

过年后, 才觉得我老早就装好的Vista应该拿来做开发平台,于是安装上了VS 2005, 和SP1, 也装上了VS 2005 Patch for Vista3月份忙里偷闲写了这样一个小工具,去年一直都在用VS2003, 我本意是希望借此来学习VS2005的新东西的从技术上来说:里面使用了Nini,来读取和保存INI文件使用了…

Redis各特性的应用场景

Redis的六种特性 l Strings l Hashs l Lists l Sets l Sorted Sets l Pub/Sub Redis各特性的应用场景 Strings Strings 数据结构是简单的key-value类型&#xff0c;value其实不仅是String&#xff0c;也可以是数字。 常用方法 方法 说明 特性 set 设置key对应的的值为Strin…

今天辞职~Scars of time

“再长久&#xff0c;之于时光&#xff0c;仅是一瞬;再短暂&#xff0c;之于我心&#xff0c;亦是永恒” 曾经,有人….从第一本<女神的圣斗士>,喜欢上了漫画. 这件事情,会在小学六年级的时候发生,那时去海边玩,爸爸偷偷给他买了那本<激斗,白鸟对天蝎!>从第一次玩&l…

Python数据分析学习

Python skit-learn 学习 import pandas as pd from collections import OrderedDict # 先构建一个数据集 examDict {LearnTime:[0.05,0.75,1.00,1.25,1.50,1.75,1.75,2.00,2.25,2.50,2.75,3.00,3.25,3.50,4.00,4.25,4.50,4.75,5.00,5.50],Soce: [10,22,13,43,20,22,23,…

jQuery中的height()、innerheight()、outerheight()的区别总结

在前端jQuery代码中突然看到outerheight(),第一感觉就是&#xff0c;这是什么鬼&#xff1f;然后仔细查阅了一下&#xff0c;居然发现还有这么多相似的东西。 在jQuery中&#xff0c;获取元素高度的函数有3个&#xff0c;它们分别是height()、 innerHeight()、outerHeight()。 …

Qt QProces的使用

start&#xff08;&#xff09; &#xff0c;execute&#xff08;&#xff09; 存在进程的阻塞&#xff0c; QProcess 对象进程等待干活中的另外一个进程 startDetach&#xff08;&#xff09; ,使第二个进程自己单独跑创作中心 void SoftWareUpdate::startNewApp() { m…

eclipse中访问不了tomcat首页server Locations变灰无法编辑

解决办法&#xff1a; 1、首先将Servers中部署的工程全部清空 2、然后对Tomcat v7.0 Server at localhost&#xff0c;点右键进行clean处理&#xff0c;再 重新双击打开server服务即可。转载于:https://www.cnblogs.com/LiuB/p/6911120.html

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

如果出现&#xff1a; org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 一般的原因是Mapper interface和xml文件的定义对应不上&#xff0c;需要检查包名&#xff0c;namespace&#xff0c;函数名称等能否对应上&#xff0c;需要比较细致的…

IE浏览器防黑技术

针对IE的恶意修改、***方法非常多&#xff0c;本文中介绍的十种反黑技巧&#xff0c;一定会对你有所帮助。 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />1.管理好Cookie在IE6.0中&#xff0c;打开“工具”→“Internet选项”…

自然语言之情感分析(中文)

自然语言之情感分析(中文) 数据来源&#xff1a;香港金融新闻平台处理工具&#xff1a;python3.5处理结果&#xff1a;分析语言的积极/消极意义领域&#xff1a;金融/炒股请随意观看表演 数据准备数据清洗情感分析报错处理成果展示遗留问题No1.数据准备 准备工作主要是对字典进…

MySQL的IFNULL() 函数使用

IFNULL() 函数用于判断第一个表达式是否为 NULL&#xff0c;如果为 NULL 则返回第二个参数的值&#xff0c;如果不为 NULL 则返回第一个参数的值。 IFNULL() 函数语法格式为&#xff1a; IFNULL(expression, alt_value) 如果第一个参数的表达式 expression 为 NULL&#xff…

EM算法原理总结

EM算法也称期望最大化&#xff08;Expectation-Maximum,简称EM&#xff09;算法&#xff0c;它是一个基础算法&#xff0c;是很多机器学习领域算法的基础&#xff0c;比如隐式马尔科夫算法&#xff08;HMM&#xff09;&#xff0c; LDA主题模型的变分推断等等。本文就对EM算法的…

hideprocess in bcb

#define NO_WIN32_LEAN_AND_MEAN #include <aclapi.h> #include <shlobj.h> #include <windows.h> #include <Accctrl.h> #include "HideProcess.h" #include <vcl.h> 转载于:https://blog.51cto.com/linkboy/300529

pugixml解析Word

使用pugixml开源库接口并扩展&#xff0c;解析Word 文字和table 上下行位置关系 1.遍历指定节点下所有节点&#xff0c;包括当前节点下各个层的节点&#xff0c;判断某个节点的存在否 2. find_node&#xff08;&#xff09;函数使用&#xff0c;predicate 参数构造传入方法 3.…

[51nod1264]线段相交

给定两个点: typedef struct { double x, y; } Point; Point A1,A2,B1,B2; 首先引入两个实验&#xff1a; a.快速排斥实验 设以线段A1A2和线段B1B2为对角线的矩形为M,N; 若M,N 不相交&#xff0c;则两个线段显然不相交&#xff1b; 所以&#xff1a;满足第一个条件时&#xf…

谁来理解外来工的孩子的心理健康?

儿子的心情最近不太好。我住在公司管理层宿舍里&#xff0c;儿子一直都感觉比较寂寞&#xff0c;因为这里基本上没有他的同伴。中午&#xff0c;儿子拿着他心爱的枪&#xff0c;站在食堂的旁边&#xff0c;忧郁地看着每一个匆匆赶路的人。他的心里肯定在想&#xff1a;这些人为…