mysql検索の簡単なアプリケーション
MySQL でより良い全文検索結果を取得する方法
著者: Techrepublic.com.com
2006-04-03 11:14:53
多数インターネット アプリケーションはすべて全文検索機能を提供しており、ユーザーは単語または単語の断片をクエリ項目として使用して、一致するレコードを見つけることができます。これらのプログラムはバックグラウンドで SELECT クエリの LIKE ステートメントを使用してこのクエリを実行しますが、この方法は機能しますが、特に大量のデータを処理する場合には非常に非効率な方法です。
MySQL は、組み込みの全文検索メソッドに基づいてこの問題の解決策を提供します。ここで開発者は、全文検索が必要なフィールドをマークするだけで、特殊な MySQL メソッドを使用してそれらのフィールドに対して検索を実行できます。これにより、パフォーマンスと効率が向上するだけでなく (MySQL はこれらのフィールドにインデックスを付けて検索を最適化するため)、より高品質な検索が可能になります。 MySQL は自然言語を使用して結果をインテリジェントに評価し、無関係な項目を排除するためです。
この記事では、MySQL で全文検索を実行する方法について説明します。
1. 基本テーブルを設定します
まず、次の SQL コマンドを使用してテーブルの例を作成します。
mysql> レビュー (id INT(5) PRIMARY) KEY NOT NULL AUTO_INCREMENT, data TEXT);
上記のコマンドは、単純な音楽アルバム データベース (主にテキスト全体) を作成し、このテーブルにいくつかのレコードを追加します。 `reviews` (`id`, `data`) VALUES
(1, 'Gingerboy は Throwing Rocks という新しいシングルをリリースしました。素晴らしいですね!');
mysql> reviews` (`id`, `data`) VALUES
(2, '皆さんこんにちは。マドンナの新しいシングルがとても気に入っています。
現在再生されている最もホットなトラックの 1 つ... '一日中聴いています');
mysql> INSERT INTO `reviews` (`id`, `data`)
VALUES (3, '新しいバンドを聞いたことがありますか?)地獄より熱い?
彼らはメンバーが 5 人いて、コンサートで演奏するときは楽器を燃やすんだよ!
>データが正しく入力されていることを確認します:
mysql> SELECT * FROM reviews; ----------------------
| データ-------------------
| ジンジャーボーイは
という新しいシングルをリリースしました | 、新しいマドンがとても好きです... |
| 新しいバンドを聞きましたか?
---- -------- -------------------------------- -------
セット内の 3 行 ( 0.00 秒)
2. 全文検索フィールドを定義します
次に、全文検索用にインデックスを作成するフィールドを定義します。 フィールド
mysql> ADD FULLTEXT INDEX (data);
クエリ OK、影響を受ける 3 行 (0.21 秒)
レコード: 3 重複: 0 警告: 0
SHOW INDEXES コマンドを使用して、インデックスが追加されていることを確認します:
mysql> SHOW INDEXES FROM reviews; --------- ---- ---------- - -------- ------ ------------ ---------
| パックされたテーブル| インデックスの種類 |
---------- ---- ---- ------ ------------ ---------
| レビュー ID | | はい |
--------- --------------- ---- ------ ------------ ---------
セット内の 2 行 (0.01 秒)
3. 全文検索を実行します。 >
データとインデックスがあれば、MySQL の全文検索を使用できます。最も単純な全文検索方法は、MATCH...AGAINST ステートメントを使用した SELECT クエリです。以下に含まれるレコードを検索する簡単な例を示します。単語「シングル」:
mysql> SELECT ID FROM レビュー (データ) AGAINST ('single') ----
id | ---
| 1 |
----
セット (0.00 秒) >ここで、MATCH() はパラメータとして渡されたフィールド内のテキストと AGAINST() に渡されたパラメータを比較し、一致する場合は通常の方法で戻ります。フィールドのリストをカンマで区切るだけで、複数のフィールドを MATCH() に渡すことができることに注意してください。
MySQL は全文検索リクエストを受け取ると、各レコードを内部でスコア付けします。一致しないレコードはスコア 0 を取得し、「関連性が高い」レコードは相対的に記録された「関連性が低い」レコードよりも高いスコアを取得します。より高いスコア。関連性は一連の MySQL 区別基準によって決定されます。詳細については、MySQL ユーザー マニュアルを確認してください。
各レコードのスコアを確認するには、以下に示すように、結果セットの一部として MATCH() メソッドを返すだけです。
mysql> SELECT id, MATCH (data) AGAINST ( 'ロック') レビューから;
---- ----------------------------------
| ID | MATCH (データ) AGAINST ('ロック') ---- ---- --------
| 1 |
2 | ------------------------
3 行セット (0.00 秒)
4. 論理検索修飾子を使用する(ブール検索修飾子)
特殊な IN BOOLEAN MODE 修飾子を AGAINST ステートメントに追加することで、論理検索修飾子を使用してより正確な検索を行うこともできます。これを実現するには、次の例では、「single」という単語を含むレコードをレコードに追加します。 「Madonna」は見つかりません:
mysql> SELECT ID FROM reviews WHERE MATCH (data) AGAINST ('single -madonna' IN BOOLEAN MODE); >
| id |
----
--- -
1 行 (0.00 秒)
この検索機能は通常、(完全な単語ではなく) 単語の断片を検索するために使用され、IN BOOLEAN MODE ステートメント * (アスタリスク) 演算子で使用できます。次の例は、" を含むレコードを検索する方法を示しています。ワード内:
mysql> SELECT ID FROM reviews WHERE MATCH (data) AGAINST ('hot*' IN BOOLEAN MODE); ----
| id |
----
| 3 |
----
セット (0.00 秒) 🎜>
このメソッドを使用して、AGAINST に渡される少なくとも 1 つのパラメーターを検索することもできます。次の例では、「hell」と「rocks」のいずれかのレコードを含む少なくとも 1 つの単語を検索します。 mysql> レビューから ID を選択 (データ) をブール モードで選択します。
--- -
| -
| 1 |
----
2 行 (0.00 秒)
上記の例は、次に次の記述が必要なときに、従来の SELECT...LIKE ステートメントと比較して全文検索を実行するより効率的な方法を示しています。MySQL データベース インターフェイスを検索するときにこの方法を試すことができます。

ホット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)

ホットトピック









MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

NAVICAT自体はデータベースパスワードを保存せず、暗号化されたパスワードのみを取得できます。解決策:1。パスワードマネージャーを確認します。 2。NAVICATの「パスワードを記憶する」機能を確認します。 3.データベースパスワードをリセットします。 4.データベース管理者に連絡してください。

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

Passwordが暗号化された形式で保存されているため、MariadbのNavicatはデータベースパスワードを直接表示できません。データベースのセキュリティを確保するには、パスワードをリセットするには3つの方法があります。NAVICATを介してパスワードをリセットし、複雑なパスワードを設定します。構成ファイルを表示します(推奨されていない、高リスク)。システムコマンドラインツールを使用します(推奨されません。コマンドラインツールに習熟する必要があります)。

手順に従って、NAVICATで新しいMySQL接続を作成できます。アプリケーションを開き、新しい接続(CTRL N)を選択します。接続タイプとして「mysql」を選択します。ホスト名/IPアドレス、ポート、ユーザー名、およびパスワードを入力します。 (オプション)Advanced Optionsを構成します。接続を保存して、接続名を入力します。

MySQLとSQLは、開発者にとって不可欠なスキルです。 1.MYSQLはオープンソースのリレーショナルデータベース管理システムであり、SQLはデータベースの管理と操作に使用される標準言語です。 2.MYSQLは、効率的なデータストレージと検索機能を介して複数のストレージエンジンをサポートし、SQLは簡単なステートメントを通じて複雑なデータ操作を完了します。 3.使用の例には、条件によるフィルタリングやソートなどの基本的なクエリと高度なクエリが含まれます。 4.一般的なエラーには、SQLステートメントをチェックして説明コマンドを使用することで最適化できる構文エラーとパフォーマンスの問題が含まれます。 5.パフォーマンス最適化手法には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、コードの読み取り可能性の向上が含まれます。

NAVICATでSQLを実行する手順:データベースに接続します。 SQLエディターウィンドウを作成します。 SQLクエリまたはスクリプトを書きます。 [実行]ボタンをクリックして、クエリまたはスクリプトを実行します。結果を表示します(クエリが実行された場合)。
