この記事では、PHP が scws を使用して MySQL の全文検索機能を実装する方法を主に紹介します。MySQL の全文検索機能は、scws の単語分割プラグインを拡張することで実装できます。必要な場合は参照してください
この記事では、scws を使用して php で mysql の全文検索機能を実装する方法の例について説明します。参考のためにみんなで共有してください。具体的な方法は次のとおりです:
scws のような中国語の単語分割プラグインは非常に優れており、固有名、人名、地名、デジタル年齢などのいくつかのルール セットが含まれています。これらのルールに従って文を主要な単語に直接分割できます。精度は 90% ~ 95% です。インストール手順に従って、scws 拡張子を PHP 拡張子ディレクトリに配置し、ルール ファイルと辞書ファイルをダウンロードして参照します。 PHP 設定ファイルで、単語のセグメンテーションに scws を使用できます
1) PHP 5.4.x と互換性があるように PHP 拡張コードを変更します
2) PHP 拡張機能の scws_get_tops の制限パラメータが正しくない問題を修正します。 10 未満は許可されます
3) libscws は既存の scws から scws_fork() を追加します。インスタンスはブランチを生成し、主にマルチスレッド開発に使用される辞書/ルール セットを共有します
4) win32 dll 拡張機能のいくつかのバージョンを追加します
PHP のコード例は次のとおりです。
コードは次のとおりです。
<?php //实例化分词插件核心类 $so = scws_new(); //设置分词时所用编码 $so->set_charset('utf-8'); //设置分词所用词典(此处使用utf8的词典) $so->set_dict('/path/dict.utf8.xdb'); //设置分词所用规则 $so->set_rule('/path/rules.utf8.ini '); //分词前去掉标点符号 $so->set_ignore(true); //是否复式分割,如“中国人”返回“中国+人+中国人”三个词。 $so->set_multi(true); //设定将文字自动以二字分词法聚合 $so->set_duality(true); //要进行分词的语句 $so->send_text(“欢迎来到火星时代IT开发”); //获取分词结果,如果提取高频词用get_tops方法 while ($tmp = $so->get_result()) { print_r($tmp); } $so->close(); ?>
注: 上記の例と同様に、入力テキスト、辞書、ルール ファイルの文字セットは統一する必要があります。さらに、一部の mysql 4.XX は中国語の全文検索をサポートしていません。全文検索を容易にするために、キーワードに対応する場所コードを保存できます
バージョン タイプ プラットフォーム パフォーマンス その他SCWS -1.1.x C コード *Unix*/*PHP* 精度: 95%、再現率: 91%、速度: 1.2MB/秒
PHP 拡張子ワード分割速度: 250KB/秒 [ダウンロード] [ドキュメント] [インストール手順]
php_scws.dll(1) PHP 拡張ライブラリ Windows/PHP 4.4.x 精度: 95%、リコール: 91%,
php_scws.dll(2 ) PHP 拡張ライブラリ Windows/PHP 5.2.x 精度: 95%、リコール: 91%、
php_scws.dll(3) PHP 拡張ライブラリ Windows/PHP 5.3.x 精度: 95%、再現率: 91%、
php_scws .dll(4) PHP 拡張ライブラリ Windows/PHP 5.4.x 精度: 95%、再現率: 91%、
PSCWS23 PHP ソース コードは制限なし (UTF-8 はサポートしていません) 精度: 93%、再現率: 89%、
PSCWS4 PHP ソース コードは制限なし 精度: 95%、再現率: 91%、