迅搜(xunsearch)是采用C/C++基于xapian和scws开发的全文搜索引擎解决方案,适用于php全文检索、mysql全文检索和各种站内搜索。支持海量数据高速检索,功能强大、简单易用、开源免费!
c++特点
1、高性能
采用C/C++开发多线程服务端,单库最多支持40亿条数据,在5亿网页大约1.5TB的数据中检索时间不超过1秒;
2、简单应用
前端是使用脚本语言编写的开发工具(SDK),目前支持PHP语言。API简单清晰,开发难度极低,提供全中文的示例代码、文档、辅助脚本工具等;
3、功能强大
除支持基础的自定义分词、字段检索、布尔搜索外,还直接支持用户急需的相关搜索、拼音搜索、搜索建议等专业功能;
缘由
我是从一款自动抓取的程序上知道的讯搜,之前做网盘搜的时候,涉及到了自动抓取和搜索引擎,看到代码包里面使用了这款引擎,当时的搜索结确实是非常快速的,而且在搜索结果上也是符合搜索规则的。顿时我就来了兴趣,找到了官方网站查看文档。
安装
在学习阶段,在腾讯云服务器上面做的测试学习,首先说一下他的安装,在服务器上面执行三步(下载、解压、安装)就行。在选择安装位置时,我直接进行跳过,选择了默认的安装位置。没有做特殊的设定;
配置
默认的配置文件在app\demo.ini中,里面使用了和端口,需要在服务器上面进行放开。
这里面包含了项目名称、默认字符集、服务器连接参数。这些我们可以使用默认的。不做更改也是可行的。
下面说的是字段的定义。这个需要我们依据实际情况去做调整,这里说两点:
1、只有这里面写的字段,在后面才能存储数据、拿出数据;
2、注意索引方式,系统设定id型字段默认是self,title型字段是both,body型字段则固定为mixed;
还有tokenizer分词器、摘要截取长度、概率权重、精确检索、布尔索引等,这里不做太多的说明了。
数据源
数据需要我们通过命令进行导入,系统支持csv,json,mysql,sqlite等,也可以自定义数据源。我使用的是mysql模式进行导入。
使用mysql导入时需要注意sql的书写,注意命令中不能出现空格,那么可能会导致某字段的数据无法导入到源中。
本人测试时导入了1万5千条数据,导入速度非常快,并且索引构建的速度也非常快。
常用操作