ホームページ  >  記事  >  バックエンド開発  >  xunsearch の概要

xunsearch の概要

WBOY
WBOYオリジナル
2016-06-23 09:15:071585ブラウズ

xunsearchとは何ですか?

オープンソースの無料、高パフォーマンス、多機能、使いやすいプロフェッショナルな全文検索テクノロジー ソリューション 詳細については、公式 Web サイトをクリックしてください

インストールとテスト

  • インストール ガイド

  • 「インストールが正常に完了しました」と表示されたら、ありがとうございます

    インストールは成功しました!
ローカル環境が要件を満たしているかどうかを確認してください。

ローカル環境検出.png
  • 迅速な開発
開発仕様

開発プロセス

設定ファイルを作成し、基本的なプロジェクト設定を作成します。オンライン ini 補助ツール

は、検索機能とインターフェイス開発用の PHP-SDK エントリ ファイル $prefix/sdk/php/lib/XS.php を導入します。
  1. デバッグ、デプロイメント
  2. ディレクトリ構造
  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 class="brush:php;toolbar:false">";  print_r($words);

2.カスタムワードセグメンテーション

カスタマイズされた単語セグメンテーション ドキュメント 単語セグメンテーション ルールを定義します

ファイルはプレーン テキスト ファイルであり、エンコードは任意のエディターで変更できます。各行には 1 つの単語が含まれます。 1 ~ 4 フィールド。フィールド間にはスペースまたはタブを使用します。 (t) 区切られたフィールドの意味は、「単語」、「単語頻度 (TF)」、「単語頻度 (IDF)」、および「品詞 (ATTR)」を示します。 )"。次の 3 つのフィールドが省略された場合、scws のデフォルト値が順に使用されます。特別な品詞! 使用可能! Yu は、単語カスタム辞書の削除が、組み込み辞書のロードおよび使用よりも優先されることを意味します。 . #

で始まる行動コメント

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

ヒント

 每次使用xunsearch的服务,首先要开启服务。或者,将服务写到开机的脚本文件中。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。