zoukankan      html  css  js  c++  java
  • window环境下,php+sphinx+coreseek实现简单的中文全文搜索

    就以我个人理解来说,sphinx其实是介于客户端和mysql之间的一个索引表,把数据库的没一条记录假设为文档,那么这个索引表其实保存的就是这条记录的关键词及其对应的文档id

    1.sphinx的安装

    下载地址http://pecl.php.net/package/sphinx,找到对应的版本下载好即可

    下载完之后,把文件解压后把php_sphinx.dll和php_sphinx.pdb文件复制到本地环境的ext文件夹下,在php.ini文件加上extension=php_sphinx.dll,重启Apache

    输出phpInfo(),能看到sphinx的扩展库

    2.coreseek

    为什么要安装sphinx呢?其实因为coreseek就是sphinx+mmseg(中文分词技术),使用coreseek其实就是在调用sphinx

    下载地址http://www.coreseek.cn/news/14/54/

    选择需要的版本下载即可

    解压文件后,把文件夹内的文件复制到D盘下的coreseek文件夹(不需要特定路径,只要能找到就好)

    在ect目录下找到csft_mysql.conf文件,将其复制到bin目录下,并重命名为scft.conf(coreseek默认读取名为scft.conf的配置文件,不过配置文件能修改)

    打开scft.conf配置文件,修改配置

    本文以test2数据库中的test表为例,其字段信息分别是id,title,content

    先看源定义,sql_host,sql_user,sql_pass等这些简单的配置就不说了,sql_query是你定义全文索引时需要被索引的字段,sql_query_info定义需要从哪个数据表读取源数据信息

    再来看看主索引文件,path是保存索引的位置,charset_dictpath是你读取分词文件的位置

    其余的indexer(生成索引),searchd(开启服务)等配置,只要改一下相应的文件路径即可,比如log等参数

    3.开启服务

    打开cmd窗口,进入到coreseek的bin目录下,运行indexer --all命令,生成索引

    之后开启输入searchd.exe命令开启服务

    3.结合php使用进行全文搜索

    这是插入的测试数据 

    php的测试代码

     测试结果

    coreseek的配置除了多了个中文分词的配置之外,其余和sphinx的配置一样,所以这里就不再说明sphinx的配置了,至于关于sphinx更多的高级用法,可以去查看php文档的sphinx模块

  • 相关阅读:
    js添加获取删除cookie
    华为Scan Kit二维码扫描
    Android中使用抖动动画吸引来用户注意-属性动画
    material_dialogs 动画弹框
    flutter 通过widget自定义toast,提示信息
    flutter 通过用户信息配置路由拦截 shared_preferences
    fluterr shared_preferences 存储用户信息 MissingPluginException(No implementation found for method getAll on channel
    Android Scroller及实际使用
    Antd Tree简单使用
    iOS开发--runtime常用API
  • 原文地址:https://www.cnblogs.com/zhp-king/p/6554890.html
Copyright © 2011-2022 走看看