Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

kegagalan pencarian teks lengkap mysql

-- drop table testproduct;
CREATE TABLE testproduct
(
    Id                VARCHAR(16),
    prod_name           TEXT,
    ProductIdType     VARCHAR(8),
  PRIMARY KEY (Id),
  FULLTEXT (prod_name)
) ENGINE=MyISAM;

insert into testproduct (id,prod_name,productidtype) values ('B00005N5PF','one pen and a good price for a pen','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('B570J5XS3C',null,'ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C00ZZ5N5PF','let us get rid of some noise','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('D00LL5N5PA','four score and seven years ago our fore...','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('EEEZZ5N5PF','he has a harpoon','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C01ZZ5N5PF','and then we','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('B00ZZ5N5PF','he has a pen in his pocket not a banana','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C02ZZ5N5PF','went to the store','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C03ZZ5N5PF','and decided that we should buy some','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C04ZZ5N5PF','fruit cups or fruit or berries or pebbles','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C037Z5N5PF','then he and her she and it','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('C04K95N5PF','threw some daggers and a harpoon','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('D88895N5PF','more noise and some of this','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('D34595N5PF','this article about harpoons really drills into the throwing of harpoon or harpoons to those that deserve a harpoon','ASIN');
insert into testproduct (id,prod_name,productidtype) values ('D12395N5PF','and there we go','ASIN');

Pencarian Teks Lengkap membutuhkan beberapa variasi untuk menghilangkan 'noise' yang berulang. Pengujian dengan data minimal akan menghasilkan hasil yang buruk. Lemparkan seluruh koleksi Anda untuk sesuatu yang berarti untuk keluar. Ada pengaturan untuk ukuran minimum kata-kata yang dicoba untuk dicari seperti yang terlihat pada beberapa tautan di bawah ini.

Hentikan Kata-kata

Ada MySql Daftar Stop Words dalam berbagai bahasa yang mewakili kata-kata tidak penting yang dilewati selama proses pencarian. Daftar itu dikompilasi ke dalam server, tetapi dapat diganti seperti yang terlihat di Halaman Manual dan teks:

Untuk mengganti daftar stopword default, setel variabel sistem ft_stopword_file. (Lihat Bagian 5.1.4, “Variabel Sistem Server”.) Nilai variabel harus berupa nama path dari file yang berisi daftar stopword, atau string kosong untuk menonaktifkan pemfilteran stopword. Server mencari file di direktori data kecuali jika nama path absolut diberikan untuk menentukan direktori yang berbeda. Setelah mengubah nilai variabel ini atau konten file stopword, restart server dan bangun kembali indeks FULLTEXT Anda.

Beberapa Contoh Kueri

-- select * from testproduct
SELECT * FROM testproduct WHERE MATCH(prod_name) AGAINST('score' IN BOOLEAN MODE);
SELECT * FROM testproduct WHERE MATCH(prod_name) AGAINST('harpoon' IN BOOLEAN MODE);
SELECT * FROM testproduct WHERE MATCH(prod_name) AGAINST('banana' IN BOOLEAN MODE);
SELECT * FROM testproduct WHERE MATCH(prod_name) AGAINST('years' IN BOOLEAN MODE);

untuk mendapatkan beberapa kata yang cocok:

SELECT id,prod_name, match( prod_name )
AGAINST ( '+harpoon +article' IN BOOLEAN MODE ) AS relevance
FROM testproduct 
ORDER BY relevance DESC

Memberikan bobot nyata dalam relevance kolom:

SELECT id,prod_name, match( prod_name )
AGAINST ( '+harpoon +article' IN NATURAL LANGUAGE MODE) AS relevance
FROM testproduct 
ORDER BY relevance DESC
+------------+--------------------------------------------------------------------------------------------------------------------+--------------------+
| id         | prod_name                                                                                                          | relevance          |
+------------+--------------------------------------------------------------------------------------------------------------------+--------------------+
| D34595N5PF | this article about harpoons really drills into the throwing of harpoon or harpoons to those that deserve a harpoon | 3.6207125186920166 |
| EEEZZ5N5PF | he has a harpoon                                                                                                   | 1.2845110893249512 |
| C04K95N5PF | threw some daggers and a harpoon                                                                                   | 1.2559525966644287 |
|------------+--------------------------------------------------------------------------------------------------------------------+--------------------+

Mengangkat bagian beberapa kata dari di sini . Terima kasih spencer




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. menampilkan gambar yang disimpan dalam gumpalan mysql

  2. Mengekspor tabel dari Amazon RDS ke file CSV

  3. Bagaimana cara mendapatkan rekor terbaru di setiap grup menggunakan GROUP BY?

  4. Cara Mengelola MySQL - untuk Oracle DBA

  5. xampp MySQL tidak dimulai