Windows に Sphinx をインストールして使用する [中国語の全文検索をサポート]_PHP チュートリアル
少し前に、さまざまな言語 (PHP/Python/Ruby/etc) で簡単に呼び出すことができる全文検索システムである Sphinx を使用してみました。インターネット上の情報のほとんどは Linux 環境にインストールされ、使用されます。もちろん、本番環境としては、*nix 環境にデプロイする必要があります。学習やテストには、Windows 環境の方が便利です。
この記事は、中国語の全文検索をサポートするために Windows に Sphinx をインストールして構成する便利な方法を提供することを目的としています。構成部分は Linux で共通です。
1. スフィンクスについて
Sphinx は GPLv2 に基づいてリリースされた全文検索エンジンです。商用認可 (他のプログラムへの埋め込みなど) については、作者 (Sphinxsearch.com) に連絡して商用認可を取得する必要があります。
一般的に言えば、Sphinx は独立した検索エンジンであり、高速、低スペース占有、および結果に関連性の高い全文検索機能を他のアプリケーションに提供することを目的としています。 Sphinx は、SQL データベースやスクリプト言語と簡単に統合できます。
現在のシステムには、MySQL および PostgreSQL データベース データ ソースのサポートが組み込まれており、標準入力からの特定の形式の XML データの読み取りもサポートされています。ソース コードを変更することで、ユーザーは新しいデータ ソースを追加できます (たとえば、他の種類の DBMS のネイティブ サポート)。
検索 API は PHP、Python、Perl、Rudy、Java をサポートしており、MySQL ストレージ エンジンとしても使用できます。検索 API は非常にシンプルで、数時間以内に新しい言語に移植できます。
スフィンクスの特徴:
- 高速インデックス作成 (最新の CPU では、ピークパフォーマンスは 10MB/秒に達する可能性があります);
- 高性能検索 (2 ~ 4 GB のテキスト データで 1 回の取得あたりの平均応答時間は 0.1 秒未満)。 大量のデータを処理できます (現在、単一 CPU システムで 100GB を超えるテキスト データと 1 億ドキュメントを処理できることがわかっています);
- 優れた関連性アルゴリズム、フレーズの類似性と統計に基づく複合ランキング手法 (BM25) を提供します。
- 分散検索をサポート;
- 文書の抜粋生成を提供する。
- 検索サービスを提供するための MySQL ストレージ エンジンとして使用できます。
- ブール値、フレーズ、単語の類似性などの複数の検索モードをサポートします。
- このドキュメントは複数の全文検索フィールド (最大 32 個まで) をサポートしています。
- ドキュメントは複数の追加属性情報 (例: グループ化情報、タイムスタンプなど) をサポートします。
- ストップワードクエリ。
- シングルバイトエンコーディングとUTF-8エンコーディングをサポートします。
- ネイティブ MySQL サポート (MyISAM と InnoDB の両方をサポート)。
- ネイティブ PostgreSQL サポート。
2. Windows への Sphinx のインストール
1. 最新の Windows バージョンを http://www.sphinxsearch.com/downloads.html で見つけます。ここでダウンロードしたのは、MySQL をサポートする Win32 リリースのバイナリです。
2. D:sphinx の下にインデックス ファイルとログ ファイル用のログ ディレクトリを作成します (ファイル名の変更に注意してください)。
3. D:sphinxbinsphinx.conf を変更する必要があるものをここにリストします。
リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー リーリー4. テストデータをインポートする
C:Program FilesMySQLMySQL Server 5.0bin>mysql -uroot test
D:sphinxbin>indexer.exe –all
Sphinx 0.9.8-リリース (r1533)著作権 (c) 2001-2008、アンドリュー・アクショーノフ4 つのドキュメントを収集、0.0 MB
設定ファイル「./sphinx.conf」を使用しています…
インデックス「test1」をインデックス化しています…ソート済み 0.0 M ヒット、100.0% 完了
合計 4 つのドキュメント、193 バイト
合計 0.101 秒、1916.30 バイト/秒、39.72 ドキュメント/秒
D:スフィンクスビン>
6.「テスト」を検索してみてください
D:sphinxbin>search.exe テスト
Sphinx 0.9.8-リリース (r1533)著作権 (c) 2001-2008、アンドリュー・アクショーノフ
設定ファイル「./sphinx.conf」を使用しています…
インデックス「test1」: クエリ「test」: 0.000 秒以内に合計 3 件中 3 件の一致が返されました一致の表示:
id=1
1. document=1、weight=2、group_id=1、date_added=2008 年 11 月 26 日水曜日 14:58:59グループID=1
group_id2=5
date_added=2008-11-26 14:58:59
title=テスト1
content=これは私のテスト ドキュメント 1 番目です
内の検索もチェックします。 フレーズ。
2. document=2、weight=2、group_id=1、date_added=2008 年 11 月 26 日水曜日 14:58:59
id=2
グループID=1
group_id2=6
date_added=2008-11-26 14:58:59
title=テスト2
content=これは私のテストドキュメントその2です
3. document=4、weight=1、group_id=2、date_added=2008 年 11 月 26 日水曜日 14:58:59
id=4
グループID=2
group_id2=8
date_added=2008-11-26 14:58:59
title=ドキュメント番号 4
content=これはグループをテストするためのものです言葉:
1. 「テスト」: 3 つのドキュメント、5 つのヒット
D:スフィンクスビン>
みんな出てきました。
6. 中国語検索をテストする
テストデータベース内のドキュメントデータテーブルを変更します。
UPDATE `test`.`documents` SET `title` = '中国語のテスト', `content` = 'これは私のテスト文書番号 2 です、あなたはそれを見つけることができるはずです' WHERE `documents`.`id` = 2 ;
インデックスを再構築:
D:sphinxbin>indexer.exe –all
「中文」を検索してみてください:
D:sphinxbin>search.exe 中国語
Sphinx 0.9.8-リリース (r1533)
著作権 (c) 2001-2008、アンドリュー・アクショーノフ設定ファイル「./sphinx.conf」を使用しています…
インデックス「test1」: クエリ「中文」: 0.000 秒で合計 0 件中 0 件の一致が返されました言葉:
D:スフィンクスビン>
見つからないようです。これは、Windowsのコマンドラインのエンコーディングがgbkであるため、当然見つかりません。プログラムで試して、D:sphinxapi の下に新しいファイル foo.php を作成し、utf-8 エンコーディングに注意してください
「sphinxapi.php」が必要です;
$s = 新しい SphinxClient();
$s->SetServer('localhost',3312);
$result = $s->Query('中文');
var_dump($result);
?>
Sphinx検索サービスを開始します
D:sphinxbin>searchd.exe
Sphinx 0.9.8-リリース (r1533)
著作権 (c) 2001-2008、アンドリュー・アクショーノフ警告: Windows では – コンソール モードを強制します
設定ファイル「./sphinx.conf」を使用しています…
0.0.0.0:3312 にサーバーソケットを作成しています
接続を受け付けています
PHPクエリを実行:
php d:/sphinx/api/foo.php
結果は出ましたか?残りの作業は、マニュアルを読み、高レベルの構成をゆっくりと検討することです。
興味がありそうな記事
- Windows での Memcache のインストールと設定のチュートリアル
- Windows のコマンドラインで PHP ファイルを実行する方法
- Sphinx の実装 中国語の全文検索
- mysql データベースのマスター/スレーブWindows 環境 同期バックアップ手順
- Windows システムに memcache をインストールする
- Windows 7 で PHP 実行環境をインストールして構成する方法
- php は、文字列がすべて英語か、純粋な中国語か、中国語と英語の組み合わせかを判断します
- 構成情報 (レジストリ内) が不完全または破損しているため、Windows はこのハードウェア デバイスを起動できません。 (コード 19) 解決策

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。

繊維はPhp8.1で導入され、同時処理機能が改善されました。 1)繊維は、コルーチンと同様の軽量の並行性モデルです。 2)開発者がタスクの実行フローを手動で制御できるようにし、I/O集約型タスクの処理に適しています。 3)繊維を使用すると、より効率的で応答性の高いコードを書き込むことができます。

PHPコミュニティは、開発者の成長を支援するための豊富なリソースとサポートを提供します。 1)リソースには、公式のドキュメント、チュートリアル、ブログ、LaravelやSymfonyなどのオープンソースプロジェクトが含まれます。 2)StackOverFlow、Reddit、およびSlackチャネルを通じてサポートを取得できます。 3)開発動向は、RFCに従うことで学ぶことができます。 4)コミュニティへの統合は、積極的な参加、コード共有への貢献、および学習共有への貢献を通じて達成できます。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

メモ帳++7.3.1
使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
