初探xunsearch

xunsearch是什么?

開源免費、高性能、多功能、簡單易用的專業(yè)全文檢索技術方案 點擊官網,了解更多

安裝與測試

Installation completed successfully, Thanks you

就安裝成功了!

  • 檢查本地環(huán)境看看是不是滿足需求。


    本地環(huán)境檢測.png

快速開發(fā)

開發(fā)規(guī)范

開發(fā)流程

  1. 編寫配置文件,創(chuàng)建項目基本配置。在線ini輔助工具
  2. 引入 PHP-SDK的入口文件 $prefix/sdk/php/lib/XS.php 進行搜索功能和界面開發(fā)。
  3. 調試,部署

目錄結構

-
|- data/                                               索引數(shù)據(jù)目錄
    |- project/                                                 
       |- db/                                          默認的主索引數(shù)據(jù)庫,各種檢索數(shù)據(jù)均存放在此
       |- log_db/                                      搜索日志數(shù)據(jù)庫,用于存放搜索日志相關,用于實現(xiàn)相關搜索、搜索建議、拼音搜索等  
       |- search.log                                         
|- etc/                                                   
    |- dict_user.txt                                   全局自定義詞庫
|- sdk/
    |- php/
        |- app/                                        項目的配置文件
        |- lib/XS.php                                  入口文件,所有搜索功能必須且只需包含此文件
        |- util/                                       輔助工具程序目錄
            |- RequireCheck.php                        用于檢測您的 PHP 環(huán)境是否符合運行條件
            |- Quest.php                               搜索測試工具
            |- Indexer.php                             索引管理工具          

中文分詞

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

操作文檔
scws官網詞性解釋
詞性詳細解釋

1. 基本分詞

  require_once './sdk/php/lib/XS.php';
  $obj = new XS('demo');
  $tokenizer = new XSTokenizerScws;   // 直接創(chuàng)建實例
  $text = '北京大學網絡教育';
  $words = $tokenizer->getResult($text);
  echo "<pre>";
  print_r($words);

2. 自定義分詞

自定義分詞文檔
自定義分詞規(guī)則

文件為純文本文件,編碼必須是 UTF-8,可用任何編輯器修改
每行一條記錄表示一個詞,每行包含 1~4 個字段,字段之間用空格或制表符(\t)分隔
字段含義依次表示 “詞語”,“詞頻(TF)”,“逆詞頻率(IDF)”,“詞性(ATTR)”
后面三個字段如果省略依次使用 scws 的默認值
特殊詞性 !
可用于表示刪除該詞
自定義詞典優(yōu)先于內置詞典加載和使用,以 # 開頭的行為注釋

    $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'); 

搜索

首先要將數(shù)據(jù)導入到搜索服務器中,并創(chuàng)建索引,才能實現(xiàn)搜索功能。
官方文檔

1. 索引

索引在 Xunsearch中泛指用于檢索的數(shù)據(jù)庫文件總稱。每一次檢索數(shù)據(jù)均為訪問和讀取 索引文件,每一次更新數(shù)據(jù)則是對索引文件的修改。

使用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的服務,首先要開啟服務?;蛘?,將服務寫到開機的腳本文件中。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,234評論 25 708
  • Solr&ElasticSearch原理及應用 一、綜述 搜索 http://baike.baidu.com/it...
    樓外樓V閱讀 7,651評論 1 17
  • 之前流行雞湯文的時候,很多人應該都看過一個故事,說一個畢業(yè)生去面試一個崗位,本來表現(xiàn)并不算特別優(yōu)秀,但是因為出門的...
    八月初上閱讀 899評論 0 0
  • 天蓬元帥,即后來的豬八戒同志是不是間諜呢?這是個很有意思的問題,下面老逯給各位分析一下子。 間諜要有很好的偽裝能力...
    南王舍人閱讀 1,986評論 0 0
  • 經常忘記和容易混淆的集合方法 并集 :并把結果賦給set5 交集:結果賦值給 set1 結果是(set3 - se...
    小贏一場閱讀 312評論 0 0

友情鏈接更多精彩內容