初探xunsearch

xunsearch是什么?

开源免费、高性能、多功能、简单易用的专业全文检索技术方案 点击官网,了解更多

安装与测试

Installation completed successfully, Thanks you

就安装成功了!

  • 检查本地环境看看是不是满足需求。


    本地环境检测.png

快速开发

开发规范

开发流程

  1. 编写配置文件,创建项目基本配置。在线ini辅助工具
  2. 引入 PHP-SDK的入口文件 $prefix/sdk/php/lib/XS.php 进行搜索功能和界面开发。
  3. 调试,部署

目录结构

-
|- data/                                               索引数据目录
    |- project/                                                 
       |- db/                                          默认的主索引数据库,各种检索数据均存放在此
       |- log_db/                                      搜索日志数据库,用于存放搜索日志相关,用于实现相关搜索、搜索建议、拼音搜索等  
       |- search.log                                         
|- etc/                                                   
    |- dict_user.txt                                   全局自定义词库
|- sdk/
    |- php/
        |- app/                                        项目的配置文件
        |- lib/XS.php                                  入口文件,所有搜索功能必须且只需包含此文件
        |- util/                                       辅助工具程序目录
            |- RequireCheck.php                        用于检测您的 PHP 环境是否符合运行条件
            |- Quest.php                               搜索测试工具
            |- Indexer.php                             索引管理工具          

中文分词

 xunsearch采用基于 scws + Xapian 的开源全文搜索引擎

操作文档
scws官网词性解释
词性详细解释

1. 基本分词

  require_once './sdk/php/lib/XS.php';
  $obj = new XS('demo');
  $tokenizer = new XSTokenizerScws;   // 直接创建实例
  $text = '北京大学网络教育';
  $words = $tokenizer->getResult($text);
  echo "<pre>";
  print_r($words);

2. 自定义分词

自定义分词文档
自定义分词规则

文件为纯文本文件,编码必须是 UTF-8,可用任何编辑器修改
每行一条记录表示一个词,每行包含 1~4 个字段,字段之间用空格或制表符(\t)分隔
字段含义依次表示 “词语”,“词频(TF)”,“逆词频率(IDF)”,“词性(ATTR)”
后面三个字段如果省略依次使用 scws 的默认值
特殊词性 !
可用于表示删除该词
自定义词典优先于内置词典加载和使用,以 # 开头的行为注释

    $path = "./etc/dict_user.txt";
    //加载自定义分词  自定义+默认    
    $tokenizer->addDict($path);    
    //只使用自定义分词
    // $tokenizer->setDict($path);    
    $new = $tokenizer->getResult($text);
    echo "<hr>";
    print_r($new);

3. 提取重要词汇

    $tops = $tokenizer->getTops($text, 10, 'n,v,vn'); 

搜索

首先要将数据导入到搜索服务器中,并创建索引,才能实现搜索功能。
官方文档

1. 索引

索引在 Xunsearch中泛指用于检索的数据库文件总称。每一次检索数据均为访问和读取 索引文件,每一次更新数据则是对索引文件的修改。

使用Indexer索引管理工具,可以简化操作

2. 基本搜索

    require_once './sdk/php/lib/XS.php';
    $demoObj = new XS('demo');
    $searchObj = $demoObj->getSearch();
    $keyword = $_GET['keyword'];
    $page = $_GET['page'];
    if($page <= 1){    
       $page = 1;
    }
    $pageSize = 10;
    $offset = ($page - 1) * $pageSize;
    $searchObj->setLimit($pageSize,$offset)->search($keyword);

3. 同义词搜索

    $indexObj = $demoObj->getIndex();
    //添加同义词    
    $indexObj->addSynonym("北京大学","北大");    
    $indexObj->flushLogging();

Tips

 每次使用xunsearch的服务,首先要开启服务。或者,将服务写到开机的脚本文件中。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,569评论 25 707
  • Solr&ElasticSearch原理及应用 一、综述 搜索 http://baike.baidu.com/it...
    楼外楼V阅读 7,095评论 1 17
  • 之前流行鸡汤文的时候,很多人应该都看过一个故事,说一个毕业生去面试一个岗位,本来表现并不算特别优秀,但是因为出门的...
    八月初上阅读 832评论 0 0
  • 天蓬元帅,即后来的猪八戒同志是不是间谍呢?这是个很有意思的问题,下面老逯给各位分析一下子。 间谍要有很好的伪装能力...
    南王舍人阅读 1,759评论 0 0
  • 经常忘记和容易混淆的集合方法 并集 :并把结果赋给set5 交集:结果赋值给 set1 结果是(set3 - se...
    小赢一场阅读 246评论 0 0