Làm sao để tối ưu search
Trong dự án hiện tại của mình đang cho tìm kiếm trực tiếp trên db qua lệnh like, nhưng rất chậm và chỉ tìm kiếm đc từ 1 bảng truyện, không tìm kiếm được theo chương, theo thể loại, một truyện có thể có nhiều thể loại Có cách nào để tối ưu tìm kiếm và tìm kiểm vừa theo tên truyện vừa theo tên chương và thể loại được không?
1 CÂU TRẢ LỜI
Về cơ bản không nên tìm kiếm bằng like như hiện tại.
để tăng tốc tìm kiếm có thể sử dụng một số cách sau:
-
Dùng fulltext search được hỗ trợ sẵn bởi mysql, postgres, đánh index các trường muốn tìm kiếm là đc.
-
Với dữ liệu quá lớn như hàng triệu record, tìm kiếm full nội dung truyện.. thì có thể dùng các công cụ hỗ trợ tìm kiếm riêng biệt để nâng cao hiệu suất cũng như sự chính xác của kết quả.
2.1 Dữ liệu ít (< 10k row) có thể dùng cloud service với plan free như Algolia Search: https://www.algolia.com/
2.2 Dữ liệu dưới 10 triệu row có thể dùng MeiliSearch: https://github.com/meilisearch/MeiliSearch, hoặc những app tương đương
2.3 Dữ liệu nhiều hơn or muốn làm nhiều thứ nâng cao hơn với tìm kiếm có thể dùng Elastic search, tuy nhiên setup, code cũng phức tạp hơn. https://www.elastic.co/
Nói chung tùy vào mục đích và lượng dữ liệu để chọn ra phương pháp để tối ưu search. mình nghĩ với kiểu truyện như dự án của bạn thì dùng full text search đã là đủ rồi, hoặc MeiliSearch cũng đc.
Cảm ơn bạn. Mình muốn tìm kiếm chuỗi mà kết quả trả về độ chính xác của từ khóa bao nhiêu % trên search solr thì làm thế nào nhỉ, có thể cho mình query example demo ko?