Cara menggunakan PHP untuk melaksanakan carian teks penuh dan fungsi pengekstrakan kata kunci

PHPz
Lepaskan: 2023-09-05 14:28:02
asal
909 orang telah melayarinya

如何使用 PHP 实现全文搜索和关键字提取功能

Cara menggunakan PHP untuk melaksanakan carian teks penuh dan fungsi pengekstrakan kata kunci

Carian teks penuh dan pengekstrakan kata kunci ialah ciri biasa dalam tapak web dan aplikasi moden, yang boleh memberikan pengguna pengalaman carian yang lebih baik dan cadangan yang berkaitan. Dalam PHP, kita boleh menggunakan pengindeksan teks penuh dan teknologi pengekstrakan kata kunci untuk mencapai fungsi ini. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan carian teks penuh dan fungsi pengekstrakan kata kunci, dan menyediakan contoh kod yang sepadan.

  1. Pelaksanaan fungsi carian teks penuh

Carian teks penuh merujuk kepada pencarian rekod yang mengandungi kata kunci tertentu dalam kandungan teks. Dalam PHP, kita boleh menggunakan fungsi pengindeksan teks penuh pangkalan data atau perpustakaan enjin carian untuk melaksanakan fungsi carian teks penuh.

1.1 Gunakan indeks teks penuh pangkalan data

Pangkalan data seperti MySQL dan PostgreSQL menyediakan keupayaan pengindeksan teks penuh, yang boleh mencipta indeks teks penuh dalam jadual pangkalan data untuk mempercepatkan carian. Berikut ialah contoh menggunakan indeks teks penuh MySQL:

// 建立全文索引
CREATE FULLTEXT INDEX index_name ON table_name(column_name);

// 执行全文搜索
SELECT * FROM table_name WHERE MATCH(column_name) AGAINST('keyword');
Salin selepas log masuk

1.2 Menggunakan perpustakaan enjin carian

Selain fungsi pengindeksan teks penuh pangkalan data, kami juga boleh menggunakan perpustakaan enjin carian sumber terbuka untuk melaksanakan teks penuh fungsi carian, seperti Elasticsearch, Apache Solr, dsb. Berikut ialah contoh penggunaan Elasticsearch untuk melaksanakan carian teks penuh:

require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

// 连接 Elasticsearch
$hosts = ['localhost:9200'];
$client = ClientBuilder::create()
            ->setHosts($hosts)
            ->build();

// 创建索引
$params = [
    'index' => 'my_index',
    'body'  => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0
        ]
    ]
];
$response = $client->indices()->create($params);

// 创建文档
$params = [
    'index' => 'my_index',
    'id' => '1',
    'body' => [
        'title' => 'Example Document',
        'content' => 'This is an example document for full text search.'
    ]
];
$response = $client->index($params);

// 执行全文搜索
$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => [
                'content' => 'search keyword'
            ]
        ]
    ]
];
$response = $client->search($params);
Salin selepas log masuk
  1. Pelaksanaan fungsi pengekstrakan kata kunci

Pengestrakan kata kunci merujuk kepada mengekstrak kata kunci wakil daripada teks, yang sering digunakan untuk menjana teg, cadangan carian dan fungsi lain . Dalam PHP, kami boleh menggunakan perpustakaan pengekstrakan kata kunci sumber terbuka untuk melaksanakan fungsi pengekstrakan kata kunci, seperti Textrank, TF-IDF, dsb. Berikut ialah contoh penggunaan Textrank untuk melaksanakan pengekstrakan kata kunci:

require 'vendor/autoload.php';

use JekkayTextRankTextRankFacade;

// 使用 Textrank 提取关键字
$tr = new TextRankFacade();
$keywords = $tr->extract('This is an example document for keyword extraction.');

print_r($keywords);
Salin selepas log masuk

Di atas ialah contoh mudah menggunakan PHP untuk melaksanakan carian teks penuh dan fungsi pengekstrakan kata kunci. Dalam aplikasi praktikal, kami juga boleh menggabungkan teknologi lain seperti pembahagian perkataan, analisis semantik, dll. untuk meningkatkan ketepatan dan kesan carian dan pengekstrakan. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci Cara menggunakan PHP untuk melaksanakan carian teks penuh dan fungsi pengekstrakan kata kunci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!