ThinkPHP6 全文検索機能実装ガイド: 包括的な検索データ
はじめに
全文検索は、次の内容を含むアイテムを迅速に検索できる重要なデータ検索テクノロジです。指定されたキーワード データ。 Web アプリケーション開発では、ユーザー エクスペリエンスとデータ クエリの効率を向上させるために、全文検索機能を実装する必要があることがよくあります。この記事では、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_', ],
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_', ],
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']; }
index
メソッドを使用してデータのインデックス付けを実装できます。たとえば、次のようになります。use appmodelArticle; // 获取要索引的数据 $data = Article::where('status', 1)->select(); // 索引数据 Article::index($data);
search
メソッドは全文検索を実行します。たとえば、タイトルにキーワード「ThinkPHP」を含む記事を検索します。use appmodelArticle; $keyword = 'ThinkPHP'; $articles = Article::search($keyword)->select(); foreach ($articles as $article) { echo $article->title; echo $article->content; }
概要
上記の手順により、ThinkPHP6 フレームワークに全文検索機能を実装できます。検索エンジンとしてElasticsearchを使用し、ThinkPHP6のデータベース操作と連携することで、データの網羅的な検索を実現し、クエリ効率を向上させることができます。この記事があなたのお役に立てば幸いです。
参考リンク:
以上がThinkPHP6 全文検索機能実装ガイド: 包括的な検索データの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。