Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

lỗi tìm kiếm toàn văn bản 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');

Tìm kiếm toàn văn bản cần một số sự đa dạng để loại bỏ 'tiếng ồn' lặp lại. Thử nghiệm với dữ liệu tối thiểu sẽ mang lại kết quả kém. Hãy ném toàn bộ bộ sưu tập của bạn vào đó để có bất cứ thứ gì có ý nghĩa xuất hiện. Có những cài đặt cho kích thước tối thiểu của các từ thậm chí được cố gắng tìm kiếm như được thấy trong một số liên kết bên dưới.

Stop Words

Có MySql Danh sách Từ dừng bằng nhiều ngôn ngữ khác nhau đại diện cho các từ không quan trọng bị bỏ qua trong quá trình tìm kiếm. Danh sách đó được biên dịch vào máy chủ, nhưng có thể bị ghi đè như được thấy trong Trang Thủ công và văn bản:

Để ghi đè danh sách từ dừng mặc định, hãy đặt hệ thống ft_stopword_file có thể thay đổi được. (Xem Phần 5.1.4, “Biến hệ thống máy chủ”.) Giá trị biến phải là tên đường dẫn của tệp chứa danh sách từ khóa hoặc chuỗi trống để tắt tính năng lọc từ khóa. Máy chủ tìm kiếm tệp trong thư mục dữ liệu trừ khi một tên đường dẫn tuyệt đối được cung cấp để chỉ định một thư mục khác. Sau khi thay đổi giá trị của biến này hoặc nội dung của tệp từ khóa, hãy khởi động lại phân phối xây dựng lại các chỉ mục FULLTEXT của bạn.

Một số truy vấn mẫu

-- 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);

để có nhiều từ phù hợp:

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

Đưa ra trọng lượng thực về relevance cột:

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 |
|------------+--------------------------------------------------------------------------------------------------------------------+--------------------+

Đã nâng phần nhiều từ khỏi tại đây . Cảm ơn 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. Lỗi quyền Mysql với 'tải dữ liệu'

  2. Mã API đầu tiên của bạn với Node.js và Express:Kết nối cơ sở dữ liệu

  3. Ví dụ EXTRACT () - MySQL

  4. Cách sử dụng STRCMP () để so sánh 2 chuỗi trong MySQL

  5. Cách ghi chính xác các chuỗi UTF-8 vào MySQL thông qua giao diện JDBC