検索
ホームページphp教程php手册php启用sphinx全文搜索的实现方法

php启用sphinx全文搜索的实现方法

Jun 06, 2016 pm 08:15 PM
phpsphinx全部調べて有効にする方法

这篇文章主要介绍了php启用sphinx全文搜索的实现方法,详细讲述了sphinx相关的配置与使用技巧,具有一定的参考借鉴价值,需要的朋友可以参考下

本文实例讲述了php启用sphinx全文搜索的实现方法。分享给大家供大家参考。具体分析如下:

在编译安装 sphinx 的时候出现很多中文乱码,最后抛出错误卡住了,我去到官方直接下载一个 rpm 包,安装就很爽,具体错误不想研究了,忙开发呢.

安装两个包,一个是 mmseg 这个是生成中文字典的程序,一个是  csft 也就是中国版的sphinx .

rpm -ivh 安装完以后,很顺利~~不到半分钟就装完了.

中文字典库,我直接去 csft 官方下载了,挺好的想得很周到.

unigram.txt  uni.lib

unigram.txt  字典文本,可以在里面添加你自己的关键字.

然后使用:mmseg -u unigram.txt 生成字典文件:unigram.txt.uni 然后重命名一下  uni.lib 这个就是sphinx 认识的字典了.

放哪里?放你在 sphinx.conf 里面配置的字典路径里面,等会说到,然后基本就差不多了,在看下sphinx 几个实用的程序:

复制代码 代码如下:

[root@beihai365 /]# csft-

csft-indexer  csft-search   csft-searchd

csft-indexer  是生成全文搜索索引的 程序

csft-search  是测试搜索是否生效用的,也很好用,不如我还没用客户端脚本开发,就可以用这个来查看全文搜索是否成功

csft-searchd  这个就是 sphinx 搜索的守护程序了。 启动以后,,就可以用脚本 php python 等,开查询了。

就那么简单,在看下关键的两部分东西.

sphinx.conf 配置文件:

复制代码 代码如下:

source tmsgs   
{   
        type                                    = mysql   
        sql_host                                = localhost   
        sql_user                                = root   
        sql_pass                                = 1   
        sql_db                                  = phpwind75sp3   
        sql_port                                = 3306  # optional, default is 3306   
        #sql_sock                                = /tmp/mysql3307.sock   
        sql_query_pre                           = SET NAMES gbk   
        sql_query                               = SELECT id,name,type,stock FROM pw_tools   
        #sql_attr_uint                          = id   
        sql_attr_uint                           = stock   
}   
  
index tmsgsindex   
{   
        source                                  = tmsgs   
        path                                    = /var/mmseg/searchdata/beihai365   
        docinfo                                 = extern   
        charset_type                            = zh_cn.gbk   
        #min_prefix_len  = 0   
        #min_infix_len  = 2   
        #ngram_len = 2   
        charset_dictpath                        = /var/mmseg/data   
        #min_prefix_len                          = 0   
        #min_infix_len                           = 0   
        #min_word_len                            = 2   
}   
  
indexer   
{   
        mem_limit                               = 128M   
}   
  
searchd   
{   
        #listen                                = 3312   
        log                                 = /var/log/searchd.log   
        query_log                           = /var/log/query.log   
        read_timeout                        = 5   
        max_children                        = 30   
        pid_file                            = /var/log/searchd.pid   
        max_matches                         = 1000   
        #seamless_rotate                     = 1   
        #preopen_indexes                     = 0   
        #unlink_old                          = 1   
}  
source tmsgs
{
        type                                    = mysql
        sql_host                                = localhost
        sql_user                                = root
        sql_pass                                = 1
        sql_db                                  = phpwind75sp3
        sql_port                                = 3306  # optional, default is 3306
        #sql_sock                                = /tmp/mysql3307.sock
        sql_query_pre                           = SET NAMES gbk
        sql_query                               = SELECT id,name,type,stock FROM pw_tools
        #sql_attr_uint                          = id
        sql_attr_uint                           = stock
}
index tmsgsindex
{
        source                                  = tmsgs
        path                                    = /var/mmseg/searchdata/beihai365
        docinfo                                 = extern
        charset_type                            = zh_cn.gbk
        #min_prefix_len  = 0
        #min_infix_len  = 2
        #ngram_len = 2
        charset_dictpath                        = /var/mmseg/data
        #min_prefix_len                          = 0
        #min_infix_len                           = 0
        #min_word_len                            = 2
}
indexer
{
        mem_limit                               = 128M
}
searchd
{
        #listen                                = 3312
        log                                 = /var/log/searchd.log
        query_log                           = /var/log/query.log
        read_timeout                        = 5
        max_children                        = 30
        pid_file                            = /var/log/searchd.pid
        max_matches                         = 1000
        #seamless_rotate                     = 1
        #preopen_indexes                     = 0
        #unlink_old                          = 1
}


再看一下,测试客户端代码:

复制代码 代码如下:

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境