Dưới đây là một trường hợp gặp lỗi khi sử dụng sphinx search:
- Website Node.js
- Cơ sở dữ liệu: bảng bạn muốn truy vấn được tạo với trường ID có kiểu dữ liệu là số 64bit (trong MySQL hay Postgresql là kiểu BIGINT).
- Trường ID được thêm vào dưới dạng một số rất lớn ví dụ:
id = new Date().getTime();
//example result: 1426837562573
- Kết nối sphinx search qua sphinxapi
Khi tìm kiếm các bản ghi có ID lớn như ví dụ trên thì không thu được kết quả. Có 2 cách xử lý trường hợp này:
- Cách 1: build lại một bản Sphinx Search hỗ trợ 64bit và indexer 64bit, index lại các bản ghi của bạn. Tham khảo bài viết này: http://sphinxsearch.com/forum/view.html?id=3836
- Cách 2: nếu số lượng bản ghi của bạn trong tương lai cũng không quá lớn, hãy sử dụng kiểu dữ liệu số 32bit (INT) để thay thế, đồng thời đặt cột ID có giá trị tự tăng (với mysql đặt Auto Increment cho trường ID, với postgresql đặt kiểu dữ liệu trường ID là serial, bigserial).
Bình luận