本文目录一览:
php中如何使用sphinx搜索引擎
一. 安装、配置
1.ubuntu安装sphinx
如果没有安装aptitude ,需要先安装 aptitude
2.配置
3.执行命令分词,会在/var/lib/sphinxsearch/data/test1 目录下生成一堆索引文件
sudo indexer -c /etc/sphinxsearch/sphinx.conf test1
test1为上述配置文件的index名字
4.命令行测试搜索
sudo search -c /etc/sphinxsearch/sphinx.conf google
二.在php中使用,安装php、sphinx的依赖库
安装 aptitudeapt-get install aptitude
sudo aptitude install libsphinxclient-dev libsphinxclient-0.0.1 -y
2.安装php sphinx的扩展
安装 pecl
sudo apt-get install php-pear php5-dev
在安装sphinx
sudo pecl install sphinx
3.在配置文件php.ini中添加sphinx的扩展,
我的php.ini文件为
sudo vim /etc/php5/fpm/php.ini
获取自己的php.ini文件位置使用
php5-fpm -i|grep ini
添加:
extension=sphinx.so
4.重启php5-fpm,查看php是否加载sphinx模块
sudo /etc/init.d/php5-fpm restart
5.将search程序运行在后台
sudo searchd -c /etc/sphinxsearch/sphinx.conf
默认监听配置文件中的端口:9312
6.在thinkphp中调用搜索
搜索完毕,返回结果(默认返回20条,修改返回条数用添加 $s-SetLimits(0, 1000, 1000);),搜索速度相当快,索引80w条数据的title和description两个字段耗时不到10s,该搜索引擎支持增量索引,多种模式的搜索,网上的资料也非常多
拥有自己的搜索引擎
虽然现在已经很少人使用PC电脑去找资料了,但有时候还是不可避免要用到,当你搜索资料时你会发现现在的搜索引擎首先出现的是一大堆的广告,是不是很烦。
现在就让我们来安装一个属于自己的搜索引擎,不用买域名、不用买服务器只需要你有一台PC电脑就可以了。
首先下载一个phpStudy2018.exe软件(比较新的是这个phpStudy-x64-8.1.1.2.exe),用这个软件来搭建一个运行PHP的服务器平台。然后再下载一个开源的PhpSou搜索引擎(整合Sphinx) V3.1或其它你自己觉得合适的源码。
安装好phpStudy后,同时把PhpSou搜索引擎源码复制到phpStudyPHPTutorialWWW,然后点击 其它选项菜单-站点域名管理,网站域名填入127.0.0.1(这个ip地址就是我们等会打开搜索引擎要用到的)。网站目录E:phpStudyPHPTutorialWWW(这个www是放你搜索引擎源码的文件夹)
设置好后点击新增-保存设置并生成配置文件,接下来就是运行配置搜索引擎了。点击 其它选项菜单-My homePage(也可以在游览器地址栏直接输入刚才设置的ip地址127.0.0.1)如果是第一次运行,按软件要求设置数据库名称、密码什么的就可以了,然后进入PhpSou后台管理,按自己需要填好网站的基本设置.
这时数据库是空的(有些源码可能会带有一些数据)我们要在常规数据管理这里的网站管理、网址管理、网页管理这三项都添加一些网址进去,然后点击 网络爬虫管理-抓取网站-开启网络爬虫或点击 网络爬虫管理-抓取网页doang-开启网络爬虫
然后就会自动的不停的去抓取网址或者网页了。
是不是很清爽,没有了烦人的广告,是不是很厉害。
其实说得这么厉害,可惜对个人来说还是自娱自乐的性质。
如何用PHP制作搜索引擎
这样看你做什么样的搜索,如果要做全站搜索的话,只用数据库搜索做起来会比较困难,会遇到要检索的数据存在不同的表中,甚至不同的库中,如果是全站搜索的话,建议用sphinx或者lucener,如果只是某个表内容搜索的话,sql:select * from 表名 where 列名 like '%值%' ;然后循环 mysql_fetch_array() 或 mysql_fetch_assoc() 或 mysql_fetch_object() 或 mysql_fetch_row()都取一行记录,把记录循环出来就可以了。
怎么在网页上用PHP做个搜索功能?
通过from表单,将查询的关键词,通过 like 跟数据进行模糊查询对比\x0d\x0a从topics表中查询字段subject与传进来的参数'$_POST['topic']进行比较模糊查询\x0d\x0a设subject字段数据为:数学,英语,物理,化学,英文\x0d\x0a$subject=$_POST['topic']; \x0d\x0a$sql = "select * from topics where subject like '%" .$subject. "%'";\x0d\x0a$result = mysql_query($sql);\x0d\x0a若从表单提交的‘topic’值为“学”,得到的结果将是:数学,化学\x0d\x0a多个字段匹配查询:\x0d\x0a$sql = "select id,subject from topics where (id like '%" .$id. "%') or (name like '%" .$name. "%') or (subject like '%" .$subject. "%') order by id desc";\x0d\x0a结果依据字段id的顺序