文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

这篇具有很好参考价值的文章主要介绍了文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

搭建一套文档搜索引擎。有时候,我们有一批文档,需要在这批文档中查找想要的内容,此时想要找到文档里面的内容就变的很麻烦。本文将介绍如何搭建一套文档搜索引擎。

如何搭建文档搜索引擎

服务器架构

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

环境准备

一台Cenos 7.x 的服务器
支持Docker
NodeJs环境
支持nodejs和npm
安装命令

yum install -y nodejs
yum install -y npm

支持git命令

yum install -y git

如下服务均搭建在同一台服务器上

一、搭建Elasticsearch

  1. 下载IK分词器
    IK分词器 Elasticsearch默认是没有分词功能的,分词是以插件的形式安装。 默认情况下,Es没有分词器,分词器是以插件包的形式存在。 下载地址 :https://github.com/medcl/elasticsearch-analysis-ik/releases/
    注意: 下载的版本需要与ES版本一致(建议)

  2. 解压后,修改文件夹名称为IK,并上传到服务器/home/elasticsearch/plugins
    文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

  3. 启动ES

docker run -d -v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins --name myelasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.17.4

二、搭建Fscrawler

  1. 提前在/root/tmp目录准备两个文档用于测试
    文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

2.启动Fscrawler,在启动时,系统会询问Do you want to create it(Y/N)?回答Y

docker run -it --rm -v ~/.fscrawler:/root/.fscrawler -v ~/tmp:/tmp/es:ro dadoonet/fscrawler fscrawler mydoc

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

3配置参数

vim /root/.fscrawler/mydoc/_settings.yaml

(分别设置更新频率,扫描文件类型,es的地址)

    update_rate: "60s"
  includes:
  - "*/*.pdf"
  - "*/*.doc"
  - "*/*.docx"
  - "*/*.xls"
  - "*/*.xlsx"
  - "*/*.txt"
  excludes:
  - "*/~*"

elasticsearch:
  nodes:
  - url: "http://myelasticsearch:9200"

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

4启动服务(后台运行)

docker run -d -it --rm -v ~/.fscrawler:/root/.fscrawler -v ~/tmp:/tmp/es:ro --link myelasticsearch dadoonet/fscrawler fscrawler mydoc

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

三、搭建SearchUI服务

下载 SearchUI ,地址:
https://github.com/elastic/search-ui
注意,本示例的版本是v1.8.0

  1. 修改源码内容search.js、buildRequest.js、buildState.js

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx
文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx
文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx
文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx
2. 将searchui 代码复制到服务器/home目录下,且项目名称更改为了mysearchui
文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx
3. 进入该目录,执行启动命令
先设定该目录的执行权限

Chmod -R 777 mysearchui

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

进入到目录下面,启动命令

npm start > /dev/null 2>&1 &

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

4 访问,http://服务器ip:3000/,即可搜索

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

5 不要关闭服务器窗口,使用exit退出命令,这样可以保证服务继续运行,如果直接关闭服务器窗口,可能会导致搜索不可用。

四、定时拉取Git文件

前面的操作,已经可以进行搜索了,那么下面需要将git上面的文档定时拉去到上面约定的路径下,通过定时任务执行git pull命令,拉取文档,那么我们需要配置记住密码,既可以通过配置免密登录,也可以配置记住密码(这里为了简单,我们配置记住密码)。
1.配置记住密码的设置(后面我们只要输入一次账号密码,就不需要再次输入账号密码了),当然也可以配置ssh密钥免密的方式

git config --global credential.helper store   

2 进入到/root/tmp目录,克隆项目下来

git clone https://xxxxx/document.git

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

3.进入项目路径下
执行git pull命令(目的是确定git pull命令没问题)

git pull

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

4. 编写定时的pull命令脚本

vim documentcron.sh
cd /root/tmp/document
git pull
#设定可执行权限
chmod 777 documentcron.sh

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

  1. 配置定时任务,让拉取命令定期执行
#编辑定时任务
crontab -e  
#查看定时任务
crontabl -l
#添加定时任务(设定每3分钟执行一次git pull命令)
*/3 * * * * sh /home/documentcron.sh > /tmp/documentcron.log

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

6.检查定时任务是否将git的文件拉去到指定路径
直接在其他主机上向仓库push 了一个文档,稍等片刻,发现定时任务将文件拉取下来了。
文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx

五、搭建Nginx文件下载服务器

  1. 配置nginx.conf (不需要下载nginx,docker部署)
    文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx
vim nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    default_type        application/octet-stream;
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        location /view {
       # root    /usr/share/nginx/html/download;
	    alias    /usr/share/nginx/html/download;
        autoindex on;    #开启索引功能
        autoindex_exact_size off;  #关闭计算文件确切大小(单位bytes),只显示大概大小(单位kb、mb、gb)
        autoindex_localtime on;   #显示本机时间而非 GMT 时间
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}
  1. 启动nginx
docker run --name nginx -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /root/tmp/:/usr/share/nginx/html/download -p 3001:80 -d  nginx
  1. 搜索下载文件,复制下载链接打开即可

文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx文章来源地址https://www.toymoban.com/news/detail-496599.html

到了这里,关于文件搜索引擎的搭建Elasticsearch+Fscrawler+SearchUI+Git+Nginx的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 全文搜索引擎 Elasticsearch详解

    Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的

    2023年04月22日
    浏览(41)
  • Elasticsearch:什么是搜索引擎?

    搜索引擎是一种软件程序或系统,旨在帮助用户查找存储在互联网或特定数据库中的信息。 搜索引擎的工作原理是对各种来源的内容进行索引和编目,然后根据用户的搜索查询向用户提供相关结果列表。 搜索引擎对于希望快速有效地查找特定信息的用户来说是有用的工具。

    2024年02月21日
    浏览(41)
  • 关于Elasticsearch全文搜索引擎

    我们可以把它简称为ES,但是搜索它的资料时(例如百度)还是使用Elasticsearch进行搜索更准确, 这个软件不再是SpringCloud提供的,它也不针对微服务环境的项目来开发 Elasticsearch和redismysql一样,不仅服务于java语言,其它语言也可以使用,它的功能也类似一个数据库,能高效的从

    2024年02月05日
    浏览(57)
  • 分布式搜索引擎ElasticSearch——深入elasticSearch

    聚合的分类 DSL实现Bucket聚合 DSL实现Metric聚合 RestAPI实现聚合 https://github.com/medcl/elasticsearch-analysis-pinyin DSL实现自动补全查询 Completion Suggester 修改酒店索引库数据结构 RestAPI实现自动补全查询 实现酒店搜索页面输入框的自动补全 数据同步思路分析 利用MQ实现mysql与elasticsearch数

    2024年01月17日
    浏览(46)
  • 搜索引擎ElasticSearch分布式搜索和分析引擎学习,SpringBoot整合ES个人心得

    Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,

    2024年02月04日
    浏览(69)
  • Elasticsearch 搜索引擎原理与实践

    作者:禅与计算机程序设计艺术 Elasticsearch 是开源分布式搜索引擎,提供搜素、分析、数据可视化等功能。它是一个基于 Lucene 的全文搜索服务器,能够把结构化或非结构化的数据经过索引生成一个索引库,使其可以被搜索到。 在现代 Web 应用中,搜索功能已经成为不可或缺

    2024年02月09日
    浏览(42)
  • SpringBoot集成Elasticsearch搜索引擎

    Elasticsearch是一个基于Lucene的搜索引擎,它提供了实时、可扩展和可伸缩的搜索功能。Spring Boot是一个用于构建新Spring应用的起点,它旨在简化开发人员的工作,使其能够快速地构建可扩展的、可维护的应用程序。 在现代应用程序中,搜索功能是非常重要的。它可以帮助用户快

    2024年02月19日
    浏览(48)
  • SpringBoot 使用 Elasticsearch 搜索引擎

    作者:禅与计算机程序设计艺术 Spring Boot 是由 Pivotal 团队提供的一套用于开发基于 Spring 框架的应用的工具包。其主要目标是通过提供简单易用的starter包来简化开发流程。Spring Boot 极大的地方在于其依赖自动配置,可以很好的满足开发人员的开发需求。Spring Boot 提供了数据访

    2024年02月09日
    浏览(48)
  • 搜索引擎 ElasticSearch, Solr 简介

    作者:禅与计算机程序设计艺术 搜索引擎的功能就是帮助用户快速检索到需要的信息。搜索引擎通常由两个主要组成部分:查询解析器和索引器。查询解析器负责将用户输入的查询文本转换成可以搜索的形式;而索引器则是对网页、文档或者其他信息进行索引并存储在数据库

    2024年01月19日
    浏览(39)
  • 开源的全文搜索引擎Elasticsearch

    Elasticsearch是一个开源的全文搜索引擎,可以实现快速、实时的数据搜索和分析。它是基于Apache Lucene的搜索引擎库开发而来,提供了一个分布式、多租户的全文搜索引擎平台,能够支持海量数据的实时检索、聚合分析和可视化展示。 Elasticsearch 的主要特点包括: 分布式架构:

    2024年02月08日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包