如何在linux宝塔中配置xunsearch并创建守护进程?

发布于 2021-11-15 01:56:06

xunsearch 适用于php全文检索、mysql全文检索和各种站内搜索。支持海量数据高速检索,功能强大、简单易用、开源免费!那如何在Linux宝塔上配置xunsearch呢?配置好后,又如何创建守护进程保证其持续不中断正常运行呢?

首先第一步,按照官方文档说明先安装好xunsearch插件,官方文档看这里

通常来讲xunsearch是需要和某个内容系统一块使用的,比如官方的ask问答系统插件 cms内容管理系统插件 自开发内容系统 等等,这些系统如何整合xunsearch,官方文档都有说明,可以自己查看阅读.

这里讲核心的几点:

  1. xunsearch的索引数据需要我们自己开发代码将数据库表(比如mysql)中的某些字段(id,title,content等)更新到它里面,这方面官方的ask cms blog几个插件的核心代码都有所编写,可以阅读参考. 所以如果是自开发的系统 或是新增某些字段 或是新增某些表数据到索引都可以借鉴这几个插件的关键代码.
//这里展示下ask中使用xunsearch的核心代码,供学习参考

//将question表中的记录全部加入xunsearch索引中,文件路径: addons/ask/library/FulltextSearch.php
\addons\ask\model\Question::where('status', '<>', 'hidden')->chunk(100, function ($list) {
    foreach ($list as $item) {
        self::add($item);
    }
});
//创建或更新或删除问题后,将问题信息加入到xunsearch总,文件路径: addons/ask/model/Question.php
self::afterUpdate(function ($row) use ($config) {
    if ($config['searchtype'] == 'xunsearch') {
        FulltextSearch::update($row);
    }
});
self::afterDelete(function ($row) use ($config) {
    if ($config['searchtype'] == 'xunsearch') {
        FulltextSearch::del($row);
    }
});
  1. 索引字段的设计.如何将我们内容数据表中的字段对应到xunsearch里内容索引,这就需要进行索引设计与配置,文档请移步xunsearch官方文档学习

核心要点说一下:

  • pid是索引的唯一ID,不是我们内容表的id,我们数据表中的id只作为检索排序使用,xunsearch对应字段类型为id类型;
  • 全文查询必须由有内容的字段提供,所以像标题/详情/描述/标签/作者等字段就很有用,这些信息都可以设置为xunsearch的string类型,这其中title用title专有类型,详情使用body专有类型;
  • 索引方式: none-不做索引;mixed-混合索引,像body类型字段;self-整字段索引,像id类型会用到;both-指self+mixed;
  • 分词器,主要配置有内容的字段

其次就是配置服务器端的xunsearch,参考这篇文章配置

文档中讲解了使用supervisor来创建守护进程,你可以按照它这个配置,如果你使用的宝塔面板,可以直接使用宝塔软件商店的堡塔应用管理器来配置守护进程.配置教程如下:


最后重启堡塔应用,查看是否启动成功,效果如下:
2021_11_16_00_57_25.png

©声明:本站所有文章,如无特殊说明或标注,均为izhnagbo.cn原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。本文链接 https://www.izhangbo.cn/article/47.html
0 条评论

学习
记录

发布
问题