漯河做网站xknt,桂林红豆网论坛,网站招商页面怎么做,论坛备案网站名称安装#xff08;Windows#xff09; 1.官方下载 Sphinx下载地址#xff1a; 下载 2.解压并重命名 此处下载版本为3.0.3#xff0c;将 sphinx 文件夹命名为sphinx 3.文件夹目录介绍 sphinx
--api(各语言支持的api)
--bin#xff08;二进制程序#xff09;
--doc#xff0…安装Windows 1.官方下载 Sphinx下载地址 下载 2.解压并重命名 此处下载版本为3.0.3将 sphinx 文件夹命名为sphinx 3.文件夹目录介绍 sphinx
--api(各语言支持的api)
--bin二进制程序
--doc文档说明
--etc配置文件conf/sql
--misc
--src
# 手动创建以下两个文件夹
--data
--log 4.设置配置文件 (1)将sphinx/etc/sphinx-min.conf.dist文件复制到sphinx/bin/目录下并重命名为sphinx.conf 注sphinx/etc/sphinx.conf.dist为带注释的详细的 (2)设置配置项 主要是以下为配置函数 source src1{} --- 连接数据库的基本配置# 连接的数据库类型
type mysql
# 连接的数据库主机
sql_host localhost
# 数据库连接的用户名默认为test
sql_user root
# 数据库连接的密码默认为空
sql_pass 123123
# 连接的数据库名称默认为test
sql_db test
# 连接数据库的端口号默认为3306
sql_port 3306
# 操作的数据表执行的查询语句
sql_query \SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \FROM documents index test1{}# 索引数据存放目录默认为/var/data/test1
path D:\Service\sphinx\data\test1
# 设置中文匹配
min_word_len 1
charset_type utf-8
# 指定utf-8的编码表
charset_table 0..9, A..Z-a..z, _, a..z, U410..U42F-U430..U44F, U430..U44F
min_word_len 1
min_prefix_len 0
min_infix_len 1
# 开启中文分词支持
ngram_len 1
# 需要分词的字符
ngram_chars U3000..U2FA1F index test1stemmed : test1{}# 主要需要修改的配置项默认为/var/data/test1stemmed
path D:\Service\sphinx\data\test1stemmed index rt{}# 主要需要修改的配置项默认为/var/data/rt
path D:\Service\sphinx\data\rt
# 指定对哪些字段进行匹配
rt_field name
rt_field ename
rt_field setmeal
rt_field category
rt_field country
rt_field traffic
rt_field body#
rt_attr_uint offerid searchd{}# 自定义日志文件位置
log D:\Service\sphinx\log\searchd.log
query_log D:\Service\sphinx\log\query.log
pid_file D:\Service\sphinx\log\searchd.pid 以下几项不需要修改默认值即可直接使用 source src1throttled : src1{}分布式索引的相关配置没有则可以不修改 index dist1{}indexer{}common{}5.操作数据库导入样例数据 (1)进入到mysql命令行执行命令 D:\phpStudy\PHPTutorial\MySQL\binmysql -uroot -p
Enter password: *************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.5.53 MySQL Community Server (GPL)mysql use test;# 恢复样例数据到数据库
mysql source /D:\Service\sphinx\etc/eaxmple.sql# 新增两个数据表documents和tags
mysql show tables;
documents
tags6.生成索引文件 cmd命令行进入到sphinx/bin/目录下 # 生成索引文件indexer.exe --config sphinx.conf --all
Sphinx 3.0.3-dev (commit facc3fb)
Copyright (c) 2001-2018, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)using config file sphinx.conf...
WARNING: key docinfo was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key dict was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key mva_updates_pool was permanently removed from Sphinx configuration. Refer to documentation for details.
indexing index test1...
collected 4 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 4 docs, 0.2 Kb
total 1.0 sec, 0.2 Kb/sec, 3 docs/sec
indexing index test1stemmed...
collected 4 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 4 docs, 0.2 Kb
total 1.0 sec, 0.2 Kb/sec, 3 docs/sec
skipping non-plain index dist1...
skipping non-plain index rt... 【注】新版sphinx的bin目录下已经没有search.exe程序所以不能直接在命令行执行返回结果只能使用api接口返回数据。 7.开启搜索服务保持后台运行 searchd.exe --pidfile[Tue May 15 09:02:14.690 2018] [7776] using config file ./sphinx.conf...
listening on all interfaces, port9312
listening on all interfaces, port9306
Sphinx 3.0.3-dev (commit facc3fb)
Copyright (c) 2001-2018, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)PHP开启sphinx扩展 1.下载php_sphinx扩展: 前往 具体需要下载的版本需要查看phpinfo信息: Architecture 》x86/x64
PHP Extension Build 》NTS/NS 下载并解压后将php_sphinx.dll文件放到php/ext目录下 2.修改php.ini配置文件 # 在 Dynamic Extensions 列表中添加php_sphinx扩展
extensionphp_sphinx.dll 修改后重启apache服务 3.在phpinfo.php输出的信息中查看sphinx扩展是否安装成功 sphinx
sphinx support enabled
Version 1.3.2
Revision $Revision$ 代码实现 1.样例数据表test.documents记录 id group_id group_id2 date_added title content1 1 5 2018-05-14 09:12:25 test one this is my test document number one. also checking search within phrases.2 1 6 2018-05-14 09:12:25 test two this is my test document number two3 2 7 2018-05-14 09:12:25 another doc this is another group4 2 8 2018-05-14 09:12:25 doc number four this is to test groups 2.PHP代码实现 一般实现 ?php
require(sphinxapi.php);$sphinx new SphinxClient();
$sphinx-SetServer(localhost,9312);
$sphinx-SetMatchMode(SPH_MATCH_ANY);
$sphinx-SetArrayResult ( true );
$res $sphinx-Query($_GET[key],*);
var_dump($res); thinkphp5使用介绍 1.将sphinxapi.php文件放到extend目录下 2.在控制器方法中使用app/api/index public function test()
{$sphinx new \SphinxClient();// sphinx的主机名和端口$sphinx-SetServer(localhost,9312);// 匹配模式$sphinx-SetMatchMode(SPH_MATCH_ANY);// 设置返回结果集为php数组格式$sphinx-SetArrayResult ( true );$res $sphinx-Query(input(key),*);var_dump($res);
} 3.url访问http://localhost/mypro/api/index/test?keytest 4.输出数据 D:\web\COD\api\application\api\controller\Index.php:21:
array (size10)error string (length0)warning string (length0)status int 0fields // 查询显示的字段名array (size2)0 string title (length5)1 string content (length7)attrs array (size2)group_id string 1 (length1)date_added string 2 (length1)matches // 匹配的结果返回匹配记录的id和权重权重越大匹配条件越多array (size3)0 array (size3)id string 1 (length1)weight int 2421attrs array (size2)...1 array (size3)id string 2 (length1)weight int 2421attrs array (size2)...2 array (size3)id string 4 (length1)weight int 1442attrs array (size2)...total int 3total_found int 3time float 0words array (size1)test array (size2)docs int 6hits int 10 在ThinkPHP5项目中应用 1.修改配置信息sphinx/bin/sphinx.conf source src1{
# 省略其他配置
sql_user root
sql_pass 123123
sql_db shopMall
sql_query \SELECT id,offerid, name, ename, setmeal, category, country, traffic, os, body, inventory_title, shop \FROM i_offer
sql_attr_uint offerid
# 省略其他配置
} index rt
{type rtpath D:\Service\sphinx\data\rtrt_field namert_field enamert_field setmealrt_field categoryrt_field countryrt_field trafficrt_field bodyrt_attr_uint offerid
} 2.生成索引并开启searchd服务 # 生成项目索引
sphinx/bin/indexer.exe --config sphinx.conf --all# 开启服务 表示后台开启不用保持窗口执行状态
sphinx/bin/searchd.exe 3.程序实现 sphinx查询返回的结果并不是我们需要的显示结果所以还需要对结果进行处理从而获取到我们需要的结果。 默认sphinx返回的数据中包含id信息是和数据记录的信息是相关的所以我们需要通过id到数据库中查询相关信息。 public function test()
{$s new \SphinxClient;$s-setServer(localhost, 9312);// 作为数组返回$s-SetArrayResult(true);// 匹配格式 任意匹配$s-setMatchMode(SPH_MATCH_ANY);$s-setMaxQueryTime(3);// input()表示接收用户传过来的数据$result $s-query(input(key),*);return json($result);
} 4.测试实现 访问urlhttp://localhost/mypro/api/index/test?key官方 返回结果
D:\web\COD\api\application\api\controller\Index.php:22:
array (size10)error string (length0)warning string (length0)status int 0fields array (size10)0 string name (length4)1 string ename (length5)2 string setmeal (length7)3 string category (length8)4 string country (length7)5 string traffic (length7)6 string os (length2)7 string body (length4)8 string inventory_title (length15)9 string shop (length4)attrs array (size1)offerid string 1 (length1)matches array (size6)0 array (size3)id string 36 (length2)weight int 4667attrs array (size1)...1 array (size3)id string 19 (length2)weight int 2611attrs array (size1)...// 此处省略部分数据total int 6total_found int 6time float 0words array (size2)官 array (size2)docs int 14hits int 16方 array (size2)docs int 70hits int 94 对结果进行处理 public function test()
{$s new \SphinxClient;$s-setServer(localhost, 9312);// 作为数组返回$s-SetArrayResult(true);// 匹配格式 任意匹配$s-setMatchMode(SPH_MATCH_ANY);$s-setMaxQueryTime(3);// input()表示接收用户传过来的数据$result $s-query(input(key),*);// 避免没有匹配记录时报错if(empty($result[matches])) {return null;}$result $result[matches];// 返回数组中指定的id列, 返回结果为单列数组$result array_column($result, id);$list model(offer)-field(offerid, name, ename, setmeal, category, country, traffic, os, body, inventory_title, shop)-where(array(id array(in, $result)))-select();return json($list);
} 返回结果 [{offerid: 2332302,name: 【官方站】減震隱形增高鞋墊安全有效~秒增高5公分~,ename: zenggaoxiedian,setmeal: 日韓超夯氣墊隱形增高墊輕鬆增高5公分透氣減震抗菌防臭藝人最愛【可拆分自由裁剪均碼35-44可用】【超殺998三雙】,category: [{id:6,name:其他},{id:7,name:商城},{id:8,name:家庭用品\n}],country: [{id:11,name:American Samoa},{id:1,name:Andorra},{id:8,name:Angola},{id:5,name:Anguilla},{id:10,name:Argentina},{id:7,name:Armenia},{id:12,name:Austria}],traffic: [{id:2,name:16},{id:3,name:3G\/4G},{id:4,name:Adult}],os: [{id:1,name:3DS System Software},{id:2,name:Android},{id:13,name:BeOS},{id:16,name:CentOS}],body: 123123123,inventory_title: 隱形增高鞋墊B,shop: [{userid:77912776,name:myShop}]},{offerid: 3308032,name: 【官方站】電熱造型梳,ename: zaoxingshu,setmeal: 長/短髮都適用好梳好上手亂翹髮尾一秒聽話【人氣爆红款美髮救星】限時特價加NT$300再得1件,category: [{id:2,name:美容},{id:4,name:日用品},{id:6,name:其他},{id:8,name:家庭用品\n}],country: [{id:6,name:Albania},{id:4,name:Antigua And Barbuda}],traffic: [{id:3,name:3G\/4G},{id:5,name:Adult Content},{id:6,name:App Discovery Traffic}],os: [{id:3,name:Android with AOKP},{id:5,name:Android with Cyanogen Mod},{id:6,name:Android with LiquidSmooth},{id:7,name:Android with MIUI}],body: 123123123inventory_title: NOVA多功能卷髮棒B,shop: [{userid:77912776,name:myShop}]}
] 支持简体中文、繁体中文和英文的检索。 暂且实现如此。 参考连接 PHP官方手册使用Sphinx介绍http://www.php.net/manual/zh/book.sphinx.php sphinx安装https://blog.csdn.net/huang2017/article/details/69665057 https://blog.csdn.net/huang2017/article/details/69666154 将sphinx服务添加到windows服务./searchd.exe --install -c sphinx.conf --servicename s https://blog.csdn.net/design321/article/details/8895712 sphinx使用https://blog.csdn.net/u010837612/article/details/70827481 中文支持linux系统http://www.xuejiehome.com/blread-1283.html 中文支持windows系统http://www.phpernote.com/php-template-framework/284.html 其他https://my.oschina.net/guyson/blog/283576 转载于:https://www.cnblogs.com/zqunor/p/9045267.html