Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk melaksanakan operasi carian teks penuh dalam MySQL?

Bagaimana untuk melaksanakan operasi carian teks penuh dalam MySQL?

WBOY
WBOYasal
2023-07-29 22:18:294705semak imbas

Bagaimana untuk melaksanakan operasi carian teks penuh dalam MySQL?

Carian teks penuh ialah fungsi untuk mencari kata kunci dalam medan teks. Dalam MySQL, kami boleh menggunakan carian teks penuh untuk meningkatkan kecekapan pertanyaan dan mencari hasil yang berkaitan dengan cepat. Artikel ini akan memperkenalkan cara melaksanakan operasi carian teks penuh dalam MySQL dan memberikan contoh kod.

1. Cipta indeks teks penuh
Sebelum melakukan carian teks penuh, anda perlu membuat indeks teks penuh terlebih dahulu pada medan yang perlu dicari. Dalam MySQL, anda boleh menggunakan indeks FULLTEXT untuk melaksanakan fungsi carian teks penuh.

Sebagai contoh, dalam jadual bernama artikel, kami ingin melakukan carian teks penuh pada medan kandungan Anda boleh melaksanakan pernyataan SQL berikut untuk mencipta indeks FULLTEXT:

ALTER TABLE artikel TAMBAH FULLTEXT(kandungan

).

2. Lakukan Pertanyaan Carian carian teks penuh
Selepas mencipta indeks teks penuh, kita boleh menggunakan pernyataan MATCH AGAINST untuk melaksanakan pertanyaan carian teks penuh.

Contoh sintaks:
PILIH * DARI artikel WHERE MATCH(content) AGAINST('keyword');

Antaranya, kandungan ialah medan yang perlu dicari, dan 'keyword' ialah kata kunci yang perlu dicari. Ia boleh diubah suai mengikut keadaan sebenar.

Contoh kod:
PILIH * DARI artikel WHERE MATCH(kandungan) AGAINST('MySQL full-text search');

Pernyataan pertanyaan ini akan mengembalikan rekod artikel yang mengandungi kata kunci "MySQL full-text search".

3. Tetapkan pilihan carian teks penuh
Pernyataan MATCH AGAINST dalam MySQL menyokong beberapa pilihan untuk terus mengawal kelakuan carian teks penuh.

  1. DALAM MOD BOOLEAN
    Gunakan DALAM MOD BOOLEAN untuk melaksanakan operasi Boolean pada carian.

Contoh kod:
PILIH * DARI artikel WHERE MATCH(kandungan) AGAINST('+MySQL -Full text' DALAM BOOLEAN MODE);

Pernyataan pertanyaan ini akan mengembalikan teks penuh yang mengandungi kata kunci "MySQL" tetapi tidak mengandungi kata kunci " ” rekod artikel.

  1. WITH QUERY EXPANSION
    Menggunakan QUERY EXPANSION boleh mengembangkan carian dan mengembalikan lebih banyak rekod artikel yang berkaitan dengan kata kunci.

Contoh kod:
PILIH * DARI artikel WHERE MATCH(kandungan) AGAINST('MySQL full-text search' WITH QUERY EXPANSION);

Pernyataan pertanyaan ini akan mengembalikan lebih banyak rekod artikel yang berkaitan dengan kata kunci "MySQL full-text search " .

4 Hadkan bilangan hasil carian
Anda boleh menggunakan pernyataan LIMIT untuk mengehadkan bilangan hasil carian untuk meningkatkan kecekapan pertanyaan.

Contoh kod:
PILIH * DARI artikel WHERE MATCH(kandungan) AGAINST('MySQL full-text search') LIMIT 10;

Pernyataan pertanyaan ini akan mengembalikan 10 rekod artikel pertama yang memenuhi kata kunci "MySQL full-text search ".

5. Gunakan kedudukan carian
Pernyataan MATCH AGAINST dalam MySQL boleh mengisih kata kunci mengikut kekerapan kejadian dalam teks dan mengembalikan kedudukan carian.

Contoh kod:
SELECT *, MATCH(kandungan) AGAINST('MySQL full-text search') SEBAGAI kedudukan DARI artikel DI MANA MATCH(kandungan) AGAINST('MySQL full-text search') ORDER BY rank DESC;

Ini pernyataan pertanyaan akan Mengembalikan rekod artikel yang disusun dalam susunan menurun mengikut kedudukan carian kata kunci "carian teks penuh MySQL".

Ringkasnya, fungsi carian teks penuh dalam MySQL boleh dicapai dengan mencipta indeks FULLTEXT dan menggunakan pernyataan MATCH AGAINST. Apabila melakukan operasi carian teks penuh, anda boleh menetapkan pilihan, mengehadkan bilangan hasil carian dan menggunakan kedudukan carian untuk meningkatkan ketepatan dan kecekapan pertanyaan anda.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan operasi carian teks penuh dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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