Panduan pelaksanaan fungsi carian teks penuh ThinkPHP6: carian data yang komprehensif
Pengenalan
Carian teks penuh ialah teknologi perolehan data penting yang boleh mencari data yang mengandungi kata kunci tertentu dengan cepat. Dalam pembangunan aplikasi web, kami selalunya perlu melaksanakan fungsi carian teks penuh untuk meningkatkan pengalaman pengguna dan kecekapan pertanyaan data. Artikel ini akan memperkenalkan cara menggunakan rangka kerja ThinkPHP6 untuk melaksanakan fungsi carian teks penuh dan menyediakan contoh kod khusus.
config/database.php
. 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
use appmodelArticle; $keyword = 'ThinkPHP'; $articles = Article::search($keyword)->select(); foreach ($articles as $article) { echo $article->title; echo $article->content; }
Dalam ThinkPHP6, kami boleh menggunakan sambungan topthink/think-elasticsearch
untuk mengendalikan Elasticsearch dengan mudah. Pertama, anda perlu menggunakan Composer untuk memasang sambungan:
Kemudian, anda perlu mengkonfigurasi maklumat sambungan Elasticsearch dalam fail config/service.php
:
article
. Seterusnya, kita perlu mencipta jadual data yang sepadan dengan indeks dalam pangkalan data dan mencipta model untuk mengendalikan jadual data. Jalankan arahan berikut: Article
. Dalam kelas model, kita perlu mentakrifkan hubungan pemetaan indeks dan medan Elasticsearch, serta beberapa medan yang memerlukan carian teks penuh: 🎜rrreeeindex
untuk melaksanakan pengindeksan data, contohnya: 🎜🎜rrreeeAtas ialah kandungan terperinci Panduan pelaksanaan fungsi carian teks penuh ThinkPHP6: data carian komprehensif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!