全文检索组件
本文档指导用户安装悦库网盘的全文检索服务。安装前请确保已安装悦库服务器,并且已连接互联网!
硬件要求
- CPU 4核心及以上、内存8G及以上。
- 为保证访问性能,全文检索服务应独享硬盘访问,用户数大于100个或文件存储量大于10TB时应配备固态硬盘,不能与悦库的文件存储或数据库存储路径共享同一存储硬件。
安装
- Windows系统
- Linux系统
软件环境:
-
为您的操作系统安装Windows版本的VirtualBox应用程序,根据提示一直点"下一步"即可 。
-
下载悦库全文检索组件VirtualBox镜像。
-
虚拟机的存储目录有足够的剩余空间,全文检索服务后续占用的空间是悦库网盘中存储文件总空间的5%左右。
-
需要悦库网盘专业版才能支持此功能。
导入镜像
- 打开VirtualBox,点击“导入”。
- 选择镜像文件(ydisk_search.ova),点击“下一步”。
-
选择合适的默认电脑保存路径,点击导入。
-
导入后启动虚拟机。
-
验证服务可用
虚拟机启动大概需要1~3分钟,启动完成后在浏览器输入:https://127.0.0.1:2023 ,可以弹出登录对话框则证明全文检索服务部署成功。
-
启动文件索引计划任务
要实现以文件内容方式搜索,需要先完成对文件的内容索引,这需要较长的时间。以单个2M左右的.doc文件为例,需要15秒左右时间才能完成,如果文件数量特别大,这个过程可能需要长达几天时间。
在悦库网盘中点击
系统管理
->系统维护
,在计划任务中找到全文检索
,点击立即运行。
软件环境:
-
为您的操作系统安装适当的Docker 应用程序。
-
确保docker容器存储目 录有足够的剩余空间,全文检索服务后续占用的空间是悦库网盘中存储文件总空间的5%左右。
-
需要悦库网盘专业版才能支持此功能。
1. 修改系统配置
-
打开系统配置文件
sudo vim /etc/sysctl.conf
加入一行:
vm.max_map_count=262144
保存后退出。
-
使配置生效
sudo sysctl -p
查看结果:
sudo sysctl -a|grep vm.max_map_count
2. Docker 中启动 Elasticsearch
-
拉取 Elasticsearch Docker 映像。
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:8.2.0
-
为您的容器创建一个
elastic
网络。sudo docker network create elastic
-
创建es存储目录,该目录用于存储全文检索相关的索引数据库。
sudo rm -rf /opt/ydisks/es
sudo mkdir -p /opt/ydisks/es
sudo chmod 777 /opt/ydisks/es -
在 Docker 中启动 Elasticsearch,同时设置开机自启动。
Ubuntu:
sudo docker run --restart=always --name es01 --net elastic -p 2023:9200 --restart=always -it --mount type=bind,source=/opt/ydisks/es,target=/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:8.2.0
CentOS:
sudo docker run --restart=always --privileged=true --name es01 --net elastic -p 2023:9200 --restart=always -it -v /opt/ydisks/es:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:8.2.0
容器启动完成后,您可能需要在终端中向后滚动一点才能查看elastic用户密码,内容如下:
-
复制生成的elastic密码保存在文本文件中,后面步骤有用。密码仅在您第一次启动 Elasticsearch 时显示。
-
配置Elasticsearch 容器。
进入容器,编辑配置文件:
sudo docker exec -it es01 /bin/bash
vi ~/config/elasticsearch.yml在 "network.host" 项下面插入一条新配置项:
http.max_content_length: 1000mb
:wq 保存后退出容器
exit
重启容器,等待15秒左右完成
sudo docker restart es01
3. 安装摄取附件和分词器插件
sudo docker cp ./elasticsearch-analysis-ik-8.2.0.zip es01:/tmp
sudo docker exec -it es01 bin/elasticsearch-plugin install file:///tmp/elasticsearch-analysis-ik-8.2.0.zip
sudo docker cp ./ingest-attachment-8.2.0.zip es01:/tmp
sudo docker exec -it es01 bin/elasticsearch-plugin install file:///tmp/ingest-attachment-8.2.0.zip
sudo docker restart es01
4. 配置悦库全文检索服务
在悦库服务端配置文件 /opt/ydisks/config.json ,更新fullTextSearch.password
字段的值为上面步骤文本文件中已记录的elastic密码。
"fullTextSearch": {
"scheme": "https", # 协议:https
"hostname": "127.0.0.1", # 服务的主机名称
"port": 2023, # 端口
"user": "elastic", # 用户名称
"password": "" # elastic密码
}
修改完后,重启悦库网盘容器生效。
sudo docker restart ydisks
5. 启动文件索引计划任务
要实现以文件内容方式搜索,需要先完成对文件的内容索引,这需要较长的时间。以单个2M左右的.doc文件为例,需要15秒左右时间才能完成,如果文件数量特别大,这个过程可能需要长达几天时间。
在悦库网盘中点击 运维管理
->系统维护
,在计划任务中找 到全文检索
,点击立即运行。
重置Elastic密码的方法
如果忘记Elastic密码可以通过以下命令重置
sudo docker exec -it es01 bin/elasticsearch-reset-password --username elastic -i
卸载
- Windows系统
- Linux系统
由于Windows系统是通过虚拟机实现的全文检索服务,因此如果需要卸载只需要在Virualbox中删除名称为 ydisk_search
的虚拟机即可。
-
删除es容器
sudo docker rm -f es01
-
删除es镜像
sudo docker rmi docker.elastic.co/elasticsearch/elasticsearch:8.2.0
-
删除数据目录
sudo rm -rf /opt/ydisks/es