wikijs部署及中文全文检索

这篇具有很好参考价值的文章主要介绍了wikijs部署及中文全文检索。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系统配置及需求

centos7
wikijs
nodejs
postgres13
scws,zhparser(postgres 13中文检索插件)
nginx

安装nodejs、postgres13及wikijs

nodejs

  • 下载nodejs安装包
wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
  • 解压安装包
tar xvf node-v12.16.1-linux-x64.tar.xz
  • 安装
mv node-v12.16.1-linux-x64 /usr/local/
  • 为node、npm建立软链接
ln -s /usr/local/node-v12.16.1-linux-x64/bin/node /usr/bin/node
ln -s /usr/local/node-v12.16.1-linux-x64/bin/npm /usr/bin/npm
  • 测试nodejs
[root@itwiki wiki]# node -v
v12.16.1

安装postgres13

注:postgres13安装后,使用zhparser遇到的大坑,zhparser必须手动安装配置。

  • 安装postgres13相关程序
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y centos-release-scl
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache
yum install -y postgresql13  postgresql13-server postgresql13-contrib postgresql13-devel
#以上安装完后,避免遗漏,再次安装完成postgressql所有
yum install -y postgresql13*
  • 启动postgres
/usr/pgsql-13/bin/postgresql-13-setup initdb
systemctl start postgresql-13
  • 最好关闭防火墙
systemctl stop firewalld
  • 创建用户/数据库/授权
sudo -u postgres psql
##创建用户
CREATE USER wikijs WITH PASSWORD 'wikijsrocks';
##创建数据库
CREATE DATABASE wiki OWNER wikijs;
##授权用户
GRANT ALL PRIVILEGES ON DATABASE wiki TO wikijs;
ALTER USER wikijs WITH SUPERUSER;
##退出数据库
\q
  • 修改postgresql服务连接文件
cd var/lib/pgsql/13/data
vi pg_hba.conf

wiki.js 搜索内容页,开源软件

  • 重启postgres
systemctl restart postgresql-13.service
安装postgres中文检索
  • 安装需求扩展
yum install gcc make wget git -y
  • 下载scws安装
wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2
tar -xvf scws-1.2.3.tar.bz2
cd scws-1.2.3/
./configure
make
make install
##查看安装目录,返回结果才算安装成功
[root@itwiki ~]# ls /usr/local/include/scws/
charset.h  crc32.h  darray.h  pool.h  rule.h  scws.h  version.h  xdb.h  xdict.h  xtree.h
  • 下载zhparser源码
git clone https://github.com/amutu/zhparser.git
#将pg_config加入环境变量
cd zhparser/
export PATH=$PATH:/home/postgres/bin
#编译和安装zhparser
 make
 make install
  • postgres添加中文检索
psql -U wikijs -d wiki
##  wiki=>
-- https://docs.requarks.io/en/search/postgres
CREATE EXTENSION pg_trgm;
CREATE EXTENSION zhparser;
CREATE TEXT SEARCH CONFIGURATION pg_catalog.chinese_zh (PARSER = zhparser);
ALTER TEXT SEARCH CONFIGURATION chinese_zh ADD MAPPING FOR n,v,a,i,e,l WITH simple; 
## 忽略标点影响
ALTER ROLE wikijs SET zhparser.punctuation_ignore = ON;
## 短词复合
ALTER ROLE wikijs SET zhparser.multi_short = ON;.
查看chinese_zh
\dF
##返回结果如下,则成功
               List of text search configurations
   Schema   |    Name    |              Description
------------+------------+---------------------------------------
 pg_catalog | arabic     | configuration for arabic language
 pg_catalog | chinese_zh |
##测试一下
select ts_debug('chinese_zh', '白垩纪是地球上海陆分布和生物界急剧变化、火山活动频繁的时代');
  • 退出 session,重新连入 postgres 数据库,关闭 wikijs superuser权限
psql -U postgres -d postgres
ALTER USER wikijs WITH NOSUPERUSER;

安装wikijs

  • 下载安装包
cd usr/local
wget https://github.com/Requarks/wiki/releases/download/2.1.113/wiki-js.tar.gz
tar -xzf wiki-js.tar.gz
  • 配置wikijs
cd /usr/local/wiki
## 重命名配置文件
mv config.sample.yml config.yml
vim config.yml
        # 配置HTTP端口
          port: 3000
        # 配置数据库
        db:
          type: postgres
          host: localhost
 		  port: 5432
  		  user: wikijs
  		  pass: wikijsrocks
  		  db: wiki
		# 配置存储目录
		  dataPath: /data0/wiki
  • 配置搜索引擎
vim /usr/local/wiki/server/modules/search/postgres/definition.yml
###enum list 添加一个元素 chinese_zh
  - chinese_zh
  • 保存并启动wiki.js
cd /usr/local/wiki
node server

登陆localhost:3000进行初始化

wiki.js 搜索内容页,开源软件文章来源地址https://www.toymoban.com/news/detail-782475.html

配置wiki为系统服务

cat > /etc/systemd/system/wiki.service << EOF
[Unit]
Description=Wiki.js
After=network.target

[Service]
Type=simple
WorkingDirectory=/usr/local/wiki
ExecStart=/usr/bin/node server
Restart=always

User=root
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target
EOF
[root@itwiki system]# systemctl daemon-reload
  • 设置rc-local开机服务
cat > /etc/rc.local << EOF
#!/bin/bash











touch /var/lock/subsys/local
sudo -u postgres /usr/pgsql-13/bin/pg_ctl -D /data0/pgsql -l /var/log/pgsql/server.log start
EOF
[root@itwiki system]# chmod +x /etc/rc.local
cat > /etc/systemd/system/rc-local.service << EOF
[Unit]
Description=/etc/rc.d/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.d/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.d/rc.local start
TimeoutSec=0
RemainAfterExit=yes
EOF
[root@itwiki system]# systemctl daemon-reload
[root@itwiki system]# systemctl restart wiki.service
[root@itwiki system]# systemctl status wiki.service

到了这里,关于wikijs部署及中文全文检索的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • MySQL使用全文检索实现模糊搜索

    创建全文检索有两种方式 方式一: 方法二: in boolean mode(布尔模式): 可以为检索的字符串增加操作符,且不会像自然语言一样自动拆词查询并集(除非手动空格隔开) 全文检索模糊查询使用全文索引来提高搜索效率,可以快速查询大数据量中的模糊匹配结果。而LIKE模糊查

    2024年02月15日
    浏览(37)
  • MySQL全文索引:中文语义分词检索(相似度匹配)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 通常情况下,全文检索引擎我们一般会用ES组件(传送门:SpringBoot系列——ElasticSearch),但不是所有业务都有那么大的数据量、那么大的并发要求,MySQL5.7之后内置

    2023年04月09日
    浏览(30)
  • 图数据库Neo4J 中文分词查询及全文检索(建立全文索引)

    Neo4j的全文索引是基于Lucene实现的,但是Lucene默认情况下只提供了基于英文的分词器,下篇文章我们在讨论中文分词器(IK)的引用,本篇默认基于英文分词来做。我们前边文章就举例说明过,比如我要搜索苹果公司?首先我们要做的第一步在各个词条上创建全文索引,第二步

    2024年02月03日
    浏览(34)
  • MySQL全文检索临时代替ES实现快速搜索

    引入 在MySQL 5.7.6之前,全文索引只支持英文全文索引,不支持中文全文索引,需要利用分词器把中文段落预处理拆分成单词,然后存入数据库。 从MySQL 5.7.6开始,MySQL内置了ngram全文解析器,用来支持中文、日文、韩文分词。 全文索引只支持InnoDB和MyISAM引擎,支持的类型为C

    2024年02月07日
    浏览(36)
  • SpringBoot封装Elasticsearch搜索引擎实现全文检索

    注:本文实现了Java对Elasticseach的分页检索/不分页检索的封装 ES就不用过多介绍了,直接上代码: 创建Store类(与ES字段对应,用于接收ES数据) Elasticsearch全文检索接口:不分页检索 Elasticsearch全文检索接口:分页检索 本文实现了Java对Elasticsearch搜索引擎全文检索的封装 传入

    2024年02月04日
    浏览(34)
  • 全文检索工具elasticsearch:第四章:开发电商的搜索列表功能

    // skuInfo转化成skuLsInfo for (SkuInfo skuInfo : skuInfos) { SkuLsInfo skuLsInfo = new SkuLsInfo(); BeanUtils.copyProperties(skuInfo,skuLsInfo); // 将skuLsInfo导入到es中 Index index = new Index.Builder(skuLsInfo).index(“gmall”).type(“SkuLsInfo”).id(skuLsInfo.getId()).build(); jestClient.execute(index); } } } @Override public List SkuListByCat

    2024年04月09日
    浏览(38)
  • 中文全文检索pgroonga在HGDB-SEE V4.5.8版本编译

    PGroonga 官网:https://pgroonga.github.io/ Description:PGroonga (píːzí:lúnɡά) is a PostgreSQL extension to use Groonga as the index.PostgreSQL supports full text search against languages that use only alphabet and digit. It means that PostgreSQL doesn’t support full text search against Japanese, Chinese and so on. You can use super fast full te

    2024年02月22日
    浏览(38)
  • 后端架构师必知必会系列:搜索引擎与全文检索

    作者:禅与计算机程序设计艺术 什么是搜索引擎?它是指在互联网上搜集、整理并快速索引海量信息的数据结构与数据库,对用户的查询请求进行快速、准确的响应的技术。搜索引擎又分为互联网搜索引擎(英语: internet search engine)和本地搜索引擎(英语: local search engine)。 全文

    2024年02月05日
    浏览(39)
  • 双方案-基于Mysql 与 ElasticSearch实现关键词提示搜索与全文检索

    就喜欢搞这种不需要怎么费劲的东西,只需要把思路阐述清楚,随笔性质的博文,顺手啊,几乎不用改定就可以当博文发布出去。 那么,这里的话我们要做的就是实现这个的一个搜索功能,这个前端我就不说了,实现起来起来其实还是容易的,就是费劲。我们主要关注

    2024年01月18日
    浏览(52)
  • 基于 centos7 搭建 laravel+scout+elasticsearch+ik-analyzer 用于中文分词全文检索服务及测试

    浏览该文章,建议先食用 异常问题 这一节 软件/框架 版本 jdk 19.0.2 elasticsearch 8.1.1 ik-analyzer 8.1.1 laravel 7.x-dev elasticsearch/elasticsearch 7.17.1 tamayo/laravel-scout-elastic 8.0.3 下载jdk传送门 安装 下载:wget https://download.oracle.com/java/19/latest/jdk-19_linux-x64_bin.rpm 安装:rpm -ivh jdk-19_linux-x64_bin.

    2023年04月09日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包