Tích hợp tìm kiếm toàn văn FTS trong WordPress

Tích hợp tìm kiếm toàn văn FTS trong WordPress

Như các bạn đã biết, mặc định WordPress sử dụng các toán tử Like để tìm kiếm các bài viết trong hệ thống blog phổ biến này. Điều này làm hiệu suất tìm kiếm cực kỳ chậm nếu số lượng bài viết của website bạn quá lớn. Ở những bài viết trước mình có giới thiệu cho các bạn về tìm kiếm toàn văn trong MySQL đây là một hệ thống lập chỉ mục tìm kiếm hoàn hảo của MySQL thông qua việc xếp hạng đánh giá xếp hạng các nội dung gần đúng lên đầu. Vì vậy kết quả tìm kiếm trả về tương đối chính xác vì nguyên lý hoạt động tương đối giống google và hiệu suất tìm kiếm rất nhanh vì được lập chỉ mục.

Tích hợp tìm kiếm toàn văn Full Text Search

Tích hợp tìm kiếm toàn văn Full Text Search

Ở bài viết này mình sẽ hướng dẫn các bạn tích hợp cơ chế tìm kiếm toàn văn (Full text search) của MySQL vào website WordPress của mình để nâng cao hiệu suất hoạt động và chất lượng kết quả tìm kiếm để có một website phục vụ khách truy cập tốt hơn.

Hãy làm như những bước sau của mình để làm thành công bạn nhé!

Bước 1: Truy cập phpmyadmin đánh Full Text Search cho trường post_title của table posts như hình sau:

Đánh Full Text cho trường dữ liệu post_title

Đánh Full Text cho trường dữ liệu post_title

Mục đích của việc này là lập chỉ mục full text search cho trường dữ liệu post_title từ đó chúng ta sẽ thực hiện truy vấn dữ liệu trên trường dữ liệu này.

Lời khuyên: Các bạn nên thực hiện giảm ft_min_word_len xuống 2 và loại bỏ stop word để tìm kiếm những từ có độ dài nhỏ và không bị chặn những từ khóa mà MySQL cho là nhạy cảm thông qua việc config file my.cnf như sau:

Thêm đoạn code sau dưới dòng [mysqld]

ft_min_word_len = 2
ft_stopword_file = “”

Bước 2: Mở tập tin wp-includes\query.php sửa hàm parse_search thành như sau:

Mục đích của việc này là sửa mệnh đề where của trang search

Bước 3: Mở tập tin wp-includes\wp-db.php tìm hàm query thêm đoạn sau vào dưới dòng: public function query($query) {

Ý nghĩa của đoạn code này là để không sử dụng lệnh sắp xếp dữ liệu của truy vấn. Bởi vì mặc định khi sử dụng Full Text Search thì MySQL sẽ tự động thêm lệnh sắp xếp theo điểm xếp hạng các kết quả trả về rồi.

Tổng kết

Các bạn chỉ cần làm đúng như các bước trên là có thể tích hợp được tìm kiếm Full Text Search vào site của mình mà không cần một plugin nào khác. Điều đó sẽ đem lại cảm giác hiệu suất tốt hơn vì không cần phải sử dụng một đồ nghề của bên thứ ba phải không? :D. Chúc các bạn làm thành công. Nếu có gì thắc mắc cứ post câu hỏi và mình sẽ trả lời cho các bạn nhé!.