PHP+MYSQL は全文検索と全文検索ツールを実装します
単語分割クラス ライブラリを使用します。単語分割クラス ライブラリについては、http://www.xunsearch.com/scws/
を参照してください。PHP を使用して全文検索機能を実装するにはどうすればよいですか?
多くの人は、ファイルの取得方法、SQL のようなステートメントの使用など、いくつかの解決策をすぐに思いつくかもしれませんが、これらの方法は非常に非効率です。
ここでは、PHP の全文検索を実装するための比較的効率的な方法を紹介します。これは、MYSQL の FULLTEXT フィールド タイプを使用することです。ただし、MYSQL の FULLTEXT フィールドは中国語をあまりサポートしていません。この記事では、PHP+MYSQL を使用して中国語の全文検索機能を実装する方法も紹介します。
まず第一に、PHP 中国語単語セグメンテーション拡張モジュール SCWS を使用する必要があります。このモジュールのインストールと使用については、www.ftphp.com/scws にアクセスして関連コンテンツを見つけることができます (メッセージを残してください)。ご質問があります)。
次に、mysql のフルテキスト フィールド タイプに関する関連情報を見てください:
MySQL3.23.23 以降のバージョンでは、フルテキスト インデックス作成と検索のサポートが開始されます。 MySQL のフルテキスト インデックスは FULLTEXT 型のインデックスです。
FULLTEXT インデックスは MyISAM テーブルで使用され、ALTER TABLE または CREATE INDEX を使用して CREATE TABLE 時またはその後に CHAR、VARCHAR、または TEXT 列に作成できます。大規模なデータベースの場合、FULLTEXT インデックスを使用せずにテーブルにデータをロードし、ALTER TABLE (または CREATE INDEX) を使用してインデックスを作成すると非常に高速になります。すでに FULLTEXT インデックスがあるテーブルにデータをロードすると、非常に時間がかかります。
MYSQL の全文検索は MATCH() 関数によって完了します。
以下に簡単な例を示します:
1. 新しいデータ テーブルを作成します:
CREATE TABLE fulltext_sample(copy TEXT,FULLTEXT(copy)) TYPE=MyISAM;
フルテキストが追加されていない場合、ここでのコピーはフルテキスト タイプのフィールドです。テーブルの作成時に、次のようなアラートを通じて取得フィールドを追加することもできます:
ALTER TABLE fulltext_sample ADD FULLTEXT(copy)
2. データを挿入:
INSERT INTO fulltext_sample VALUES
('ここから見ると良さそうです')、
(' 「ここと過去」)、
(「なぜ聞こえるのか」)、
(「全面的な警告」)、
(「必要なのは愛だけ」)、
(「良い警告」);
3. データ取得 :
SELECT * FROM fulltext_sample WHERE MATCH(copy) AGAINST('love');
上記は mysql の全文検索関数です 注: 全文インデックスでの検索では大文字と小文字は区別されません。
中国語の全文検索を実装する方法を見てみましょう。
全文フィールドは単語に基づいており、単語はスペースで区切られる必要がありますが、中国語の文章では単語はスペースで区切られないため、上記の点を強調する必要があります。単語には中国語単語分割拡張モジュールが使用されます。
ただし、中国語の単語をセグメント化したにもかかわらず、MYSQL は MATCH による中国語の全文検索を実現できません。これには、変換に特定の方法が必要です。比較的簡単で実用的な方法は、次の関数を使用することです (もちろん、より良い方法があります)。中国語をurlencodeに変換します。
function q_encode($str)
{
$data = array_filter(explode(" ",$str));
$data = array_flip(array_flip($data));
foreach ($data as $ss) {
if (strlen($ss)>1 )
$data_code .= str_replace("%","",urlencode($ss)) . " ";
}
$data_code = トリム($data_code);
return $data_code ;
}
変換されたコンテンツを事前定義されたフルテキスト フィールドに保存します。同様に、クエリを実行する場合、クエリのキーワードも同じ方法で変換する必要があります。
PHP+Mysql で UTF8 全文検索を実装する方法
この記事では、大量のデータの全文検索をすばやく実行する方法について説明します。 MySQL は、フルテキスト インデックス機能を提供します。つまり、フィールドに FULLTEXT インデックス属性を設定し、SELECT の MATCH AGAINST ステートメントを介して検索します。
TouchUs - The Global Yellow Pages & Business Directory (www.touchus.org) は、当社が開発した純粋な英語のサイトで、MySQL のこの機能を使用して、100,000 件を超えるファイルの平均全文取得時間を 0.5 秒未満に短縮しています。データ。しかし、TouchUs の中国語 Web サイト - City Yellow Pages (www.city39.cn) を開発しているときに、新たな問題に遭遇しました。英語の植字では単語はスペースで区別され、FULLText は完全にサポートできることがわかりました。しかし、中国語や東アジアのテキストの場合はそれほど単純ではありません。中国語の単語間に明確な区切りがないため、MySQL はフルテキストをサポートできません。漢字によるテキスト検索。
MySQL で中国語の全文検索もサポートするにはどうすればよいですか?偶然思いついたアイデアは、中国語の単語を分割した後、中国語を英語の文字にエンコードして、中国語と英語の間に特定の関係を確立し、この方法で全文検索を実行することができるというものです。中国語の文字を実現することは可能ですか? 全文はインデックス化されていますか?テストした結果、答えは「はい」です。以下は、City Yellow Pages ネットワークで実装される具体的なプロセスです:
1. 別のインデックス テーブルを作成します。たとえば、 members テーブルに対応する、 members_index テーブルを作成します。
M会員(会員) ユーザー情報全文
外部インデックス。
2. ユーザー情報テーブル(メンバー)のUser_introductionフィールドの内容に対して中国語単語分割処理を実行します
中国語単語分割の処理手順については、簡易中国語単語分割システム http://www.ftphp を参照してください。 .com/scws/ (City Yellow Pages Web サイトにあります) では、scws の PHP 拡張モジュールを使用して中国語の単語のセグメンテーションを実装します。 scws PHP 拡張モジュールはインストールが非常に簡単で、コンパイルして構成するだけで使用できます。具体的な PHP コードでは、単語分割後の単語分割結果をスペースで接続する次の関数を記述しました。
//中国語単語分割関数
function str_fc($str) {
$so = scws_new();
$so->set_charset('utf8');
// set_dict および set_rule システムは次のとおりです。ここでは呼び出されません ini で指定されたパスの下にある辞書ファイルとルール ファイルの呼び出しを自動的に試みます
$so->send_text($str);
while ($tmp = $so->get_result())
{
foreach ( $tmp as $ss ){
$s = トリム($ss[単語]);
if ( $s )
$mystr .= トリム($ss[単語]) " " ;
// echo urlencode(trim($ss[word])) . " ";
}
}
return $mystr;
}
この関数は、スペースでつながれた単語の分割結果を返します。
3. 単語の分割結果をエンコードするには、base64 エンコード、urlencode エンコード、中国語文字のピンインへの変換、さらには gb2312 の位置コード エンコードなど、さまざまなエンコード方法を使用できます。保存容量と利便性を考慮して、PHPのurlencodeエンコード方式を採用しました。 urlencode は RFC 1738 行エンコードを使用するため、エンコード前に繰り返しの単語セグメントを削除してストレージ領域を節約できます。エンコード後には、エンコード結果から % 記号を削除する必要があります。 of %、および MySQL の % はワイルドカードです。以下はエンコード処理で使用される PHP コードです
$data = str_fc($data); //中国語単語の分割
$data = array_filter(explode(" ",$data)); //配列
$ data = array_flip(array_flip($data)); //重複を削除
//単語分割結果を URL コード化
foreach ( $data as $ss ) {
$data_code .= str_replace("%","",urlencode($ss)) . " ";
}
ここでの $data_code はエンコードされた結果です。エンコード結果を user_id 🎜Members_index 🎜 🎜 に基づいてユーザー情報のフルテキスト インデックスに保存します。 4. 検索処理を実行するときは、まずユーザーが入力したキーワードに対して同じ単語分割エンコードを実行し、次に MySQL の SELECT MATCH AGAINST を使用します。文は、検索結果の user_id に基づいて、デコードや再編成を行わずに、元のユーザー情報テーブル (メンバー) のデータを呼び出して表示するために使用されます。 🎜 🎜上記 MySQL UTF8 中国語全文検索方法🎜 🎜🎜 🎜 🎜🎜全文検索ツール: http://www.xunsearch.com🎜🎜 🎜 🎜 🎜

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











thinkphp6 ...

市場データと一般的な評価基準に基づいて、この記事では、2025年のトップ10の正式なWeb3トレーディングプラットフォームアプリをリストしています。リストには、Binance、OKX、Gate.io、Huobi(現在はHTX)、Crypto.com、Coinbase、Kraken、Gemini、Bitmex、Bitmexなどの有名なプラットフォームが含まれています。これらのプラットフォームには、ユーザースケール、トランザクションのボリューム、セキュリティ、コンプライアンス、製品の革新などに独自の利点があります。たとえば、Binanceは巨大なユーザーベースと豊富な製品サービスで知られていますが、Coinbaseはセキュリティとコンプライアンスに焦点を当てています。 適切なプラットフォームを選択するには、あなた自身のニーズとリスク許容度に基づいて包括的な検討が必要です。

この記事では、Binance Academy、Okx Learn、Coingecko、Cryptoslate、Coindesk、Investopedia、Coinmarketcap、Huobi University、Coinbase Learn、Cryptocompareなど、10の有名な仮想通貨関連アプリの推奨Webサイトを推奨しています。これらのWebサイトは、仮想通貨市場データ、価格動向分析などの情報を提供するだけでなく、基本的なブロックチェーンの知識、取引戦略、さまざまな取引プラットフォームアプリのチュートリアルとレビューなどの豊富な学習リソースを提供し、ユーザーがそれらをよりよく理解し、利用するのに役立ちます。

デジタル通貨ローリングポジションは、貸付を使用して取引レバレッジを増幅してリターンを増やす投資戦略です。 この記事では、ローリング(バイナンス、Okex、gate.io、huobi、bybitなど)をサポートする取引プラットフォームの選択などの重要な手順など、デジタル通貨ローリングプロセスを詳細に説明します。 ただし、ローリングポジション取引は非常に危険であり、投資家は慎重に運営し、完全なリスク管理戦略を策定する必要があります。 デジタル通貨ローリングのヒントの詳細については、読み続けてください。

この記事では、Binance、Okx、Gate.io、Kraken、Bybit、Coinbase、Kucoin、Bitget、Gemini、Bitstampなど、有名なWeb3トレーディングプラットフォームのトップ10をリストします。 この記事では、通貨の数、取引タイプ(スポット、先物、オプション、NFTなど)、取り扱い手数料、セキュリティ、コンプライアンス、ユーザーグループなどなど、各プラットフォームの特性を詳細に比較します。高周波トレーダー、契約取引愛好家、またはコンプライアンスとセキュリティに焦点を当てた投資家であろうと、そこから参照情報を見つけることができます。

この記事では、通貨サークルの初心者向けの詳細な交換の推奨事項と入門チュートリアルを提供します。 Coinbase、Binance、Kraken、OUYI、SESAME Open Doorなどの一般的に使用される交換が推奨され、登録、身元確認、セキュリティ設定、充電、取引の手順が導入されます。また、この記事では、初心者がデジタル資産分野に安全かつ合理的に入るのを支援することを目的とした、セキュリティ認識、リスク管理、継続的な学習の重要性を強調しています。

6つの自由市場視聴ソフトウェアWebサイトがあります。1。デジタル資産投資家に適したバイナンスプラットフォーム。 2。OKXプラットフォーム、リッチマーケットデータを提供します。 3。Gate.ioで取引するユーザーに適したセサミオープンドア(gate.io)プラットフォーム。 4。TRADINGVIEW、プロのチャート化ツールを提供する。 5。CoinMarketCap、幅広いデジタル資産データをカバーしています。 6。Coingecko、プロジェクトの基本評価を提供します。プラットフォームを選択するときは、投資オブジェクト、チャート機能要件、データの包括性、ユーザーエクスペリエンスを検討する必要があります。

この記事では、2025年に通貨サークルに入る初心者向けに、一般的に使用され、比較的安全な仮想通貨交換がいくつか推奨されます。この記事では、登録、認証、セキュリティのセットアップ、トランザクションプロセスに関する詳細なチュートリアルを提供し、リスク管理、セキュリティ認識、継続的な学習の重要性を強調し、初心者がデジタル資産取引をしっかりと開始するのを支援することを目指しています。
