以下内容基于linux 系统。 yum -y install glibc-common libtool autoconf automake mysql-devel expat-devel#如果不安装这个 可能下面 sh buildconf.sh会报错!!!cd /data/srctar -xjf ../software/autoconf-2.64.tar.bz2cd autoconf-2.64/./configuremak
以下内容基于linux 系统。
yum -y install glibc-common libtool autoconf automake mysql-devel expat-devel #如果不安装这个 可能下面 sh buildconf.sh会报错!!! cd /data/src tar -xjf ../software/autoconf-2.64.tar.bz2 cd autoconf-2.64/ ./configure make && make install cd ../ cd /data/software wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz cd /data/src tar zxf ../software/coreseek-4.1-beta.tar.gz cd coreseek-4.1-beta/mmseg-3.2.14 ./bootstrap ./configure --prefix=/usr/local/mmseg3 make && make install cd ../ cd /data/src/coreseek-4.1-beta/csft-4.1/ sh buildconf.sh ./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --without-mysql make && make install cd ../ ##测试mmseg分词,coreseek搜索(需要预先设置好字符集为zh_CN.UTF-8,确保正确显示中文) cd testpack cat var/test/test.xml #此时应该正确显示中文 /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml /usr/local/coreseek/bin/indexer -c etc/csft.conf --all /usr/local/coreseek/bin/search -c etc/csft.conf 网络搜索 #创建sphinx创建索引的脚本: mkdir -p /data/sh/other
vi /data/sh/other/sphinx_update_index.sh
#!/bin/bash CONFFILE=/usr/local/coreseek/etc/sphinx_index.conf /bin/sed s#var\/data\/#var\/data2\/#g ${CONFFILE} > ${CONFFILE}.2 mkdir -p /usr/local/coreseek/var/data2 #/usr/local/coreseek/bin/indexer --config ${CONFFILE}.2 --all --rotate /usr/local/coreseek/bin/indexer --config ${CONFFILE}.2 --all pkill -9 searchd sleep 4 /bin/rm -rf /usr/local/coreseek/var/data/ /bin/mv /usr/local/coreseek/var/data2/ /usr/local/coreseek/var/data/ sleep 2 /usr/local/coreseek/bin/searchd --config ${CONFFILE}
chmod 755 /data/sh/other/sphinx_update_index.sh
#配置sphinx索引参数配置
vi /usr/local/coreseek/etc/sphinx_index.conf
################################### PHPCMS ############################################ source cc_phpcms { type = mysql sql_host = 172.26.11.75 #此处请改成您的真实配置 sql_user = phpcms #此处请改成您的真实配置 sql_pass = 123456 #此处请改成您的真实配置 sql_db = phpcms #此处请改成您的真实配置 sql_port= 3306 #此处请改成您的真实配置 sql_query_pre = SET SESSION query_cache_type=OFF sql_query_pre = SET character_set_client = 'gbk' sql_query_pre = SET character_set_connection ='gbk' sql_query_pre = SET character_set_results ='utf8' sql_query = SELECT `id`,`catid`,`typeid`,`title`,`status`,`updatetime` from `i_news` #此处请改成您的真实配置 sql_range_step = 1000 sql_attr_timestamp = updatetime sql_attr_uint = catid sql_attr_uint = typeid sql_attr_uint = status sql_query_post = sql_ranged_throttle= 0 } index cc_phpcms { source = cc_phpcms path = /dev/shm/cc_phpcms #放这里比较好,因为这里是linux的内存区! docinfo = extern mlock = 0 enable_star = 1 morphology = none stopwords = min_word_len = 1 charset_dictpath = /usr/local/mmseg3/etc/ #注意此处 charset_type = zh_cn.utf-8 #注意此处 html_strip = 1 html_remove_elements = style, script html_index_attrs = img=alt,title; a=title; } #################################### SETTING ############################################ indexer { mem_limit = 300M } searchd { # address = 0.0.0.0 #listen = 3312 #listen = 9312 #listen = 9306:mysql41 port = 3312 log = /usr/local/coreseek/var/log/searchd.log query_log = /usr/local/coreseek/var/log/query.log read_timeout = 5 max_children = 30 pid_file = /usr/local/coreseek/var/log/searchd.pid max_matches = 1000 seamless_rotate = 1 }
#接下来实现数据源支持:让sphinx支持MySQL数据源
yum -y install mysql-devel libxml2-devel expat-devel cd /data/src/coreseek-4.1-beta/csft-4.1/ make clean sh buildconf.sh ./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql make && make install cd ../
##如果出现错误提示:“ERROR: cannot find MySQL include files…….To disable MySQL support, use –without-mysql option.“,可按照如下方法处理:
##请找到头文件mysql.h所在的目录,一般是/usr/local/mysql/include,请替换为实际的
##请找到库文件libmysqlclient.a所在的目录,一般是/usr/local/mysql/lib,请替换为实际的
##configure参数加上:–with-mysql-includes=/usr/local/mysql/include –with-mysql-libs=/usr/local/mysql/lib,执行后,重新编译安装
#跑sphinx服务脚本
/data/sh/other/sphinx_update_index.sh
好了,如果一切正常,将会顺利看到创建索引的信息如下:
下面写一段php代码进行测试(基于sphinx php 的api方式):
$page = (int)$_GET['page']; $page = ($page==0)?1:$page; $perpage = 200; $start = ($page -1) * $perpage; $keyword = urldecode($_GET['key']); require_once (S_ROOT . './api/sphinxapi.php');//请改成您的真实路径 $groupby = ""; $groupsort = "@group desc"; $filter = "fieldid"; $filtervals = array (); $distinct = ""; $sortby = ""; $cl = new SphinxClient(); $cl->SetServer("localhost", 3312); $cl->SetWeights(array ( 100, 1 )); $cl->SetMatchMode(SPH_MATCH_ANY); if (count($filtervals)) { $cl->SetFilter($filter, $filtervals); } if ($groupby) { $cl->SetGroupBy($groupby, SPH_GROUPBY_ATTR, $groupsort); } $order = 1; if ($order == 0) { //按时间倒序 $cl->SetSortMode(SPH_SORT_ATTR_DESC, "inputtime"); } elseif ($order == 1) { //按相关度排序 $cl->SetSortMode(SPH_SORT_RELEVANCE); } if ($distinct) { $cl->SetGroupDistinct($distinct); } $cl->SetLimits($start, $perpage, ($limit > 1000) ? $limit : 1000); $cl->SetRankingMode(SPH_RANK_PROXIMITY_BM25); $cl->SetArrayResult(true); $res = $cl->Query($keyword, 'cc_phpcms'); print_r($res);die;
上面的php代码没有做输入的字符过滤,这个请按自己的需要加上。
另外,
/data/sh/other/sphinx_update_index.sh 跑了一次后,
请
vi /data/sh/other/sphinx_update_index.sh
将
#/usr/local/coreseek/bin/indexer --config ${CONFFILE}.2 --all --rotate /usr/local/coreseek/bin/indexer --config ${CONFFILE}.2 --all
变成
/usr/local/coreseek/bin/indexer --config ${CONFFILE}.2 --all --rotate #/usr/local/coreseek/bin/indexer --config ${CONFFILE}.2 --all
也就是将注释调换,这样以后就可以设定个定时计划跑/data/sh/other/sphinx_update_index.sh 脚本了,
跑了/sphinx_update_index.sh 脚本后,自动会用–rotate的方式重建索引,也就是说新增加的内容也将会被索引到了。
当然,最好的方法还是做个实时索引的配置,下一篇将会重点介绍sphinx的实时索引功能!
原文地址:【原创】用coreseek快速搭建sphinx中文分词搜索引擎, 感谢原作者分享。

提起华硕旗下的游戏本,大家最先想起来的肯定是玩家国度,但除了玩家国度这个高端系列的游戏本之外,华硕旗下还有飞行堡垒系列的主流游戏本,下面我们就一起来看看游戏玩家呼声最高的华硕飞行堡垒7怎么样。 华硕飞行堡垒7 华硕旗下的飞行堡垒系列笔记本,定位轻松畅玩大型游戏,主打坚固与耐用,一直以来都是大众游戏玩家、学生群体的热门之选。 基本配置 首先我们来了解下这台飞行堡垒7的一些核心配置吧,从配置表中看,最值得注意的就是AMDRyzen73750H+NVIDIAGeForceGTX1660Ti

使用PHP和coreseek开发智能推荐系统的关键技术智能推荐系统是现代互联网应用中广泛使用的一种技术,它能够根据用户的兴趣和行为,为用户提供个性化的推荐内容。在本文中,我们将介绍如何使用PHP和coreseek开发一个基于关键技术的智能推荐系统。首先,我们需要了解一下coreseek是什么。coreseek是一个开源的全文检索引擎,它基于sphinx全文检

修改md5后算原创吗在互联网时代,创作原创内容成为了一种重要的价值和资源。然而,随之而来的就是对原创性的质疑和侵权行为。为了防止盗版和抄袭,很多人尝试使用不同的方法来保护自己的原创作品。其中一种常用的方法就是使用MD5算法对作品进行修改,以此来达到“算法保护”的作用。MD5(MessageDigestAlgorithm5)是一种常用的消息摘要算法,它能

构建基于PHP和coreseek的播客内容搜索工具随着数字媒体的迅猛发展,播客(podcast)已经成为人们获取信息、娱乐和学习的重要渠道之一。然而,随着越来越多的播客内容产生,如何快速准确地找到感兴趣的内容成为了一个亟待解决的问题。本文将介绍如何使用PHP和coreseek构建一个高效的播客内容搜索工具,并提供相关的代码示例。首先,我们需要明确corese

利用PHP和coreseek实现精准的食谱搜索功能概述:在现如今的快节奏生活中,越来越多的人开始注重自己的饮食健康。找到合适的食谱成为了一种需求。本文将介绍如何利用PHP和coreseek搜索引擎实现精准的食谱搜索功能,帮助用户轻松查找到符合自己需求的食谱。准备工作:在开始之前,我们需要准备一些工具:PHP环境:在本地或者服务器上搭建PHP环境,确保可以运行

使用PHP和coreseek开发强大的电商平台商品搜索引擎随着电子商务的快速发展,商品搜索引擎成为电商平台中不可或缺的一环。一个强大的商品搜索引擎可以帮助用户快速找到他们想要的商品,提升用户体验,从而增加销售量。本文将介绍如何使用PHP和coreseek开发一个强大的电商平台商品搜索引擎,并提供一些代码示例。一、coreseek简介coreseek是一个基于

利用PHP和coreseek实现精准的用户画像分析功能摘要:随着互联网的普及和发展,人们在网络上留下了大量的个人信息,包括浏览历史、购买记录、社交网络等。利用这些数据可以对用户进行精准的画像分析,为企业提供更好的个性化推荐和定制化服务。本文将介绍如何利用PHP和coreseek实现这个功能,并提供代码示例。一、什么是用户画像分析功能?用户画像分析功能是指通过

使用PHP和coreseek打造人才招聘网站的职位搜索功能人才招聘网站在现代社会中扮演着重要的角色,为企业提供了一个便捷的方式来寻找合适的员工。而对于求职者来说,拥有一个高效的职位搜索功能也是非常重要的。本文将介绍如何使用PHP和coreseek,一个开源的全文搜索引擎,来为人才招聘网站构建一个功能强大的职位搜索功能。首先,我们需要确保PHP和coresee


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

Atom editor mac version download
The most popular open source editor

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Dreamweaver Mac version
Visual web development tools
