近期有朋友说应用的数据库数据过多,使用mysql原生的查询很慢,问有没有解决的方式,于是就有了这一篇记录文。
讯搜(XunSearch)可以帮助一般开发者针对既有的海量数据,快速而方便地建立自己的全文搜索引擎。全文检索可以帮助您降低服务器搜索负荷、极大程度的提高搜索速度和用户体验。
优点是:
1、后端是采用 C/C++ 开发多线程服务端,索引设计基于 Xapian 和 scws 中文分词。单库最多支持 40 亿条数据,在 5 亿网页大约 1.5TB 的数据中检索时间不超过 1 秒(非缓存)
2、除支持基础的自定义分词、字段检索、布尔搜索外,还直接支持用户急需的相关搜索、拼音搜索、搜索建议等专业功能。
一、安装教程
Xunsearch PHP-SDK 是与 xunsearch 后端服务协同工作的,所以后先必须先在您的服务器 上安装服务端,服务器操作系统要求必须是 Linux、BSD 或其它类 UNIX 系统,同时安装了 gcc、make 等基础编译环境。这里使用的是Linux系统。安装步骤如下:
1、进入想把XunSearch安装的目录(你也可以自定义)
cd /usr/local/
2、运行下面指令下载、解压安装包
wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 tar -xjf xunsearch-full-latest.tar.bz2
3、执行安装脚本,根据提示进行操作,主要是输入 xunsearch 软件包的安装目录,建议单独规划一个目录,而不是混到别的软件目录中。
cd xunsearch-full-1.4.15/ sh setup.sh
4、待命令运行结束后,如果没有出错中断,则表示顺利安装完成,使用下面指令即可启动。
/usr/local/xunsearch/bin/xs-ctl.sh restart
PS:如果该程序和应用程序不在一个服务器上面,则使用下面的指令启动,并放行8383与8384端口。
/usr/local/xunsearch/bin/xs-ctl.sh -b inet start
5、设置开机启动。
将脚本指令 "/usr/local/xunsearch/bin/xs-ctl.sh -b inet start"写进 "/etc/rc.local" 文件,然后保存退出即可。
PS:安装中可能会出现一些常见的错误,我们后面的章节记录一下。
二、Thinkphp5使用讯搜(XunSearch)查询数据
1、将上面服务器安装好的讯搜目录中SDK 代码整个目录复制到相应的服务器上,放在app/extends/文件夹下面。
2、配置SDK目录中app/demo.ini中的配置参数改成与需要全文检索的字段相对应(需要注意字段的属性以及服务器参数配置)。
string 字符型,适用多数情况,也是默认值
numeric 数值型,包含整型和浮点数,仅当字段需用于以排序或区间检索时才设为该类型,否则请使用 string 即可
date 日期型,形式为 YYYYmmdd 这样固定的 8 字节,如果没有区间检索或排序需求不建议使用
id 主键型,确保每条数据具备唯一值,是索引更新和删除的凭据,每个搜索项目必须有且仅有一个 id 字段,该字段的值不区分大小写
title 标题型,标题或名称字段,至多有一个该类型的字段
body 内容型,主内容字段, 即本搜索项目中内容最长的字段,至多只有一个该类型字段,本字段不支持字段检索
3、添加数据至索引库
require_once CONF_PATH.'../extend/sdk/php/lib/XS.php';
$xs = new \XS('demo'); // 创建 XS 对象,项目名称为:demo
$index = $xs->index; // 获取索引对象
$data = array(
'pid' => 234, // 此字段为主键,必须指定
'subject' => '测试文档的标题',
'message' => '测试文档的内容部分',
'chrono' => time() ); // 创建文档对象
$doc = new \XSDocument;
$doc->setFields($data); // 添加到索引数据库中
$index->add($doc);
4、使用讯搜(XunSearch)查询数据
require_once CONF_PATH.'../extend/sdk/php/lib/XS.php';
$xs = new \XS('demo'); // 创建 XS 对象,项目名称为:demo
$search= $xs->search; // 获取搜索对象
$query = '项目测试'; // 这里的搜索语句很简单,就一个短语
$search->setQuery($query); // 设置搜索语句
$search->addWeight('subject', 'xunsearch'); // 增加附加条件:提升标题中包含 'xunsearch' 的记录的权重
$search->setLimit(5, 10); // 设置返回结果最多为 5 条,并跳过前 10 条
$docs = $search->search(); // 执行搜索,将搜索结果文档保存在 $docs 数组中
$count = $search->count(); // 获取搜索结果的匹配总数估算值
你也可以使用串接操作:
$docs = $search->setQuery('项目测试')->addWeight('subject', 'xunsearch')->setLimit(5, 10)->search();
你可以使用print_r来查看返回的数据。
站群,顾名思义,就是很多网站组成的网站群体。这些网站有共同的目标,为这个目标而牺牲单个网站的投票,将票集中到共同的目标上,形成一个或几个网站在搜索引擎上好的关键字排名。
站群一直是一个搜索引擎优化领域比较带有点危险性又很有效的方法。确实,站群对SEO来说确实是很有效果。但Google对于站群的处罚也是很严格的。一旦站群被发现,最轻的处罚是链接降权,网站排名下降,重的话,可能整个站群都被搜索引擎K掉。
一、站群的方式
1.轮链
例如:a.b.c.d.e
a连接到b 序号可以乱
b连接到c
c连接到d
d连接到e
e连接到a
2.资源连
例如:a.b.c.d.e
a连接到b
c链接到b
d连接到b
e连接到b
二、站群的价值
1.在有效的资源下,把所有想做的关键词都建立一个外链的投票。(适用专业的优化团队)
2.能快速给某个关键词大量的外链的投票。
三、站群的危害
做前面二件事的条件。
1、有明确的内容策划,每个关键词都要有对应的内容匹配。
2、时机在每个站达到什么状态后做最为合适。
如果做.不好前面,会遇到的问题。
1、全部的网站都会被降权
2、所有网站都会被k
可以加群220689519交流一下
迅搜现在已经打不开了。