ThinkPHP6 全文検索機能実装ガイド: 包括的な検索データ

WBOY
リリース: 2023-08-14 17:31:48
オリジナル
2156 人が閲覧しました

ThinkPHP6 全文検索機能実装ガイド: 包括的な検索データ

ThinkPHP6 全文検索機能実装ガイド: 包括的な検索データ

はじめに
全文検索は、次の内容を含むアイテムを迅速に検索できる重要なデータ検索テクノロジです。指定されたキーワード データ。 Web アプリケーション開発では、ユーザー エクスペリエンスとデータ クエリの効率を向上させるために、全文検索機能を実装する必要があることがよくあります。この記事では、ThinkPHP6 フレームワークを使用して全文検索機能を実装する方法と、具体的なコード例を紹介します。

  1. Elasticsearch のインストール
    Elasticsearch は、全文検索、分散検索、および分析機能を提供する強力なオープンソース検索エンジンです。まず、Elasticsearchをインストールして起動する必要があります。特定の操作については、Elasticsearch の公式ドキュメントを参照してください。
  2. データベースの構成
    ThinkPHP6 では、データベースを使用して全文検索が必要なデータを保存できます。まず、config/database.phpファイルでデータベース接続情報を構成する必要があります。
// 数据库配置 'database' => [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'your_database', // 用户名 'username' => 'your_username', // 密码 'password' => 'your_password', // 端口 'hostport' => '3306', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'your_prefix_', ],
ログイン後にコピー
  1. Elasticsearch プラグインのインストール
    ThinkPHP6 では、topthink/think-elasticsearch拡張機能を使用して Elasticsearch を簡単に操作できます。まず、Composer を使用して拡張機能をインストールする必要があります:
composer require topthink/think-elasticsearch
ログイン後にコピー

次に、config/service.phpファイルで Elasticsearch 接続情報を構成する必要があります:

// Elasticsearch配置 'elastic' => [ // Elasticsearch服务器地址 'host' => '127.0.0.1', // Elasticsearch服务器端口 'port' => 9200, // Elasticsearch用户名 'username' => 'your_username', // Elasticsearch密码 'password' => 'your_password', // Elasticsearch索引前缀 'prefix' => 'your_index_prefix_', ],
ログイン後にコピー
  1. インデックスとモデルの作成
    まず、全文検索が必要なデータを保存するためのインデックスを作成する必要があります。コマンド ラインで次のコマンドを実行します。
php think elasticsearch:makeIndex Article
ログイン後にコピー

これにより、articleという名前のインデックスが作成されます。次に、データベース内にインデックスに対応するデータテーブルを作成し、そのデータテーブルを操作するモデルを作成する必要があります。次のコマンドを実行します:

php think make:model model/Article
ログイン後にコピー

これにより、Articleという名前のデータ テーブルとモデルが作成されます。モデル クラスでは、Elasticsearch のインデックスとフィールド マッピング関係、および全文検索が必要ないくつかのフィールドを定義する必要があります。

namespace appmodel; use thinkesModel; class Article extends Model { // Elasticsearch索引名称 protected $index = 'article'; // Elasticsearch映射关系 protected $mapping = [ 'properties' => [ 'title' => [ 'type' => 'text', 'analyzer' => 'ik_max_word', ], 'content' => [ 'type' => 'text', 'analyzer' => 'ik_max_word', ], ], ]; // 全文搜索字段 protected $searchFields = ['title', 'content']; }
ログイン後にコピー
  1. インデックス データ
    データを挿入した後データベースの場合、全文検索のために Elasticsearch にインデックスを作成する必要があります。モデル クラスでは、indexメソッドを使用してデータのインデックス付けを実装できます。たとえば、次のようになります。
use appmodelArticle; // 获取要索引的数据 $data = Article::where('status', 1)->select(); // 索引数据 Article::index($data);
ログイン後にコピー
  1. データの検索
    データを検索する必要がある場合では、モデル クラスを使用できます。searchメソッドは全文検索を実行します。たとえば、タイトルにキーワード「ThinkPHP」を含む記事を検索します。
use appmodelArticle; $keyword = 'ThinkPHP'; $articles = Article::search($keyword)->select(); foreach ($articles as $article) { echo $article->title; echo $article->content; }
ログイン後にコピー

概要
上記の手順により、ThinkPHP6 フレームワークに全文検索機能を実装できます。検索エンジンとしてElasticsearchを使用し、ThinkPHP6のデータベース操作と連携することで、データの網羅的な検索を実現し、クエリ効率を向上させることができます。この記事があなたのお役に立てば幸いです。

参考リンク:

  • Elasticsearch公式ドキュメント:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
  • ThinkPHP6 公式ドキュメント: https://www.kancloud.cn/manual/thinkphp6_0/1037649

以上がThinkPHP6 全文検索機能実装ガイド: 包括的な検索データの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!