吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3182|回复: 6
收起左侧

[其他原创] Elastic Search + fscrawler 实现文档上传并搜索过滤(简单实现)

[复制链接]
MartinLee 发表于 2019-11-17 12:24
本帖最后由 MartinLee 于 2019-11-17 12:25 编辑

需求:实现一个搜索功能,搜索的内容来自上传的文档(MS Office 文档),后期也有上传图片的文字,需要全词匹配搜索高亮,还有根据用户,状态等过滤  工具:Elastic Search(后文简称ES)上传文件处理:Fcrawler 先说现有代码逻辑:同事一个PHP项目,现在越做越大,小型OA的感觉了(PHP做到现在吃力啊…),现在客户需要增加一个搜索的需求,就交给我来调研了。我本人是搞.Net的,这俩月在接手一个Ruby项目,还有个C#项目的维护,本来是让我这个月开始一个Java项目的。不提这个了,大概就这样,然后这周末我又来加班了,基本上我这块搞得差不多了,然后来总结一下吧。 文档上传本来PHP那边已经做好了,但是boss说太不稳定了,所以从上传到最后搜索,都重新搞吧。服务器部署是在AWS上,现在AWS支持的ES版本最高是7.1(当前最新版本是7.4.2),我现在本地Windows环境搭建一套 EK(ES + kibana),然后走一下,测试一下可行性。1.    安装包下载(ES一定要与Kibana版本相对应):a)     https://fscrawler.readthedocs.io/en/fscrawler-2.5/installation.htmlb)     https://www.elastic.co/downloads/elasticsearchc)     https://www.elastic.co/downloads/kibanad)     附图:file:///C:/Users/FangYing/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg image.png 2.    老版本下载:https://www.elastic.co/downloads/past-releases#kibana3.    本地安装,ES就是傻瓜式安装(.msi),Kibana的话压缩包解压,然后bin\kibana.bata)     附图file:///C:/Users/FangYing/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg image.png 4.    安装完成之后浏览器打开 image.png a)     附图:file:///C:/Users/FangYing/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg5.    fscrawler:https://fscrawler.readthedocs.io/en/fscrawler-2.5/user/getting_started.html比着来就行6.    比较想说的就是那个添加附加信息(例如是哪个用户上传的),我想的是文档上传放到一个文件夹,附带把附加信息存到另外一个同名的.txt文件,然后fscrawler每隔一段时间便利文件夹时,顺便添加信息(https://fscrawler.readthedocs.io/en/fscrawler-2.5/admin/fs/rest.html#additional-tags)file:///C:/Users/FangYing/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg按照这个来我在本地是不成功 image.png 的,,可以在file:///C:/Users/FangYing/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg这个地方看log。  不成功是因为格式不对,我改成如下:
7.   {  8.       "external": {  9.           "tenantId": 23,  10.         "author": 34,  11.         "description": "these are additional tags"  12.     }  13. }  
file:///C:/Users/FangYing/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg image.png file:///C:/Users/FangYing/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg external就是我想加进去的  file:///C:/Users/FangYing/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg image.png
image.png
image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| MartinLee 发表于 2019-11-17 12:27
从word复制过来的,图片复制不过来,自己后期又添加的, 主要是个思路,在一堆代码里加功能,只能以不影响原代码为根本...
梦毁他城 发表于 2019-11-17 13:30
为什么 不用传统的数据库,近实时的搜索,es为什么不能代替关系型数据库
 楼主| MartinLee 发表于 2019-11-17 18:45
梦毁他城 发表于 2019-11-17 13:30
为什么 不用传统的数据库,近实时的搜索,es为什么不能代替关系型数据库

把 elastic search 当做nosql呗
梦毁他城 发表于 2019-11-17 23:11
MartinLee 发表于 2019-11-17 18:45
把 elastic search 当做nosql呗

可以用es 代替吗
 楼主| MartinLee 发表于 2019-11-18 12:04

分场景吧,像我现在做的功能,用ES代替就ok
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 18:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表