fscrawler for Elasticsearch 文件系统索引
Posted on 2020-09-20 18:00 in Java
fscrawler for Elasticsearch
如果需要搜索本地文件,索引数据放到 Elasticsearch 可以试试 https://github.com/dadoonet/fscrawler
程序可以定时索引本地文件系统,增加新文件,更新已经索引的文件,移除已删除的文件
解析文件的过程调用 apache tika,把各种格式的文件转换成文本,导入到 Elasticsearch
config
需要 Java 1.8 及以上
新建配置目录
# 在当前目录下新建配置目录 config\job_name
$ bin/fscrawler --config_dir config job_name
18:28:58,174 WARN [f.p.e.c.f.FsCrawler] job [job_name] does not exist
18:28:58,177 INFO [f.p.e.c.f.FsCrawler] Do you want to create it (Y/N)?
y
建立配置目录如下
config
│
├─job_name
│ _settings.yaml
│
└─_default
├─6
│ _settings.json
│ _settings_folder.json
│
└─7
_settings.json
_settings_folder.json
最重要的配置文件是 job_name\_settings.yaml
,配置参考 Job file specification
_default\6\_settings.json
对应 es 6.x 版本,_default\7\_settings.json
对应 es 7.x 版本,只有一个地方可能需要修改,就是 content 的分词方法,我这里用的是 hanlp_index
"content": {
"type": "text", "analyzer": "hanlp_index", "search_analyzer": "hanlp_index", "index_options": "offsets"
},
run
fscrawler-es7-2.7-SNAPSHOT\bin\fscrawler.bat --config_dir config job_name
其他
记录日志:可以指定一个log4j2.xml
set FS_JAVA_OPTS="-Dlog4j.configurationFile=file:///D:/fscrawler/config/log4j2.xml"
开启 REST service
fscrawler-es7-2.7-SNAPSHOT\bin\fscrawler.bat --rest --config_dir config job_name