Cài và chạy thử Sphinx trên Windows
Giới thiệu
Như cũng đã đề cập ở các bài viết về MySQL full-text search trước, thì Sphinx là một full-text search engine được viết bằng ngôn ngữ C++ và có thể chạy trên hầu hết các hệ điều hành hiện nay (Linux, Windows, Mac, Solaris v.v).
Nhân tiện nói về thêm một chút, Sphinx là con nhân sư trong thần thoại Hy Lạp, Ai Cập. Trong thần thoại Hy Lạp nhân sư được cho là canh gác cổng vào thành phố Thebes, đưa ra câu đố cho bất kỳ ai muốn vào thành, những người không trả lời được sẽ bị nhân sư bóp cổ và ăn thịt >:)
Sau đây ta sẽ tìm hiểu cách cài đặt và sử dụng Sphinx trong môi trường Windows cùng với bộ xampp được cài đặt sẵn.
Đầu tiên ta vào trang download của Sphin search để tải về bản binary cho Windows http://sphinxsearch.com/downloads/release/ (ở đây ta chọn bản Win32 binaries w/MySQL support)
Các bước cài đặt khá đơn giản:
- Đầu tiên giải nén sphinx-2.0.4-release-win32.zip vào C:\sphinx
- Sau đó tạo file config sphinx.conf trong C:\sphinx\bin với nội dung như sau
(Lưu ý là ta sử dụng lại database ở trong bài giới thiệu về MySQL full text search trước cho cấu hình Sphinx, xem ở đây và thêm một cột
last_modified
kiểutimestamp
)
File cấu hình: sphinx.conf
Sau đó ta chạy một số lệnh để cài đặt Sphinx như là một service trong windows
C:\sphinx\bin>searchd --install --config C:\sphinx\sphinx.conf --servicename Sphinx
Nói thêm một chút về service, nếu ta muốn gỡ bỏ services này ra thì dùng lệnh sau:
C:\sc delete Sphinx
Rồi sau đó chạy lệnh để Sphinx thực hiện index dữ liệu trong MySQL vào index của mình
C:\sphinx\bin>indexer.exe -c sphinx.conf --all
Ở đây ta thấy có dòng báo lỗi my_thread_global_end() là do thư viện libmySQL.dll
đi kèm theo Sphinx chưa được cập nhật mới nhất mà thôi.
Sau đó là ta có thể thử tiến hành search bằng Sphinx bằng dòng lệnh
Tiếp theo, chúng ta sẽ tìm hiểu cách sử dụng Sphinx để search trong PHP. Đầu tiên ta vào đây để down sphinxapi.php về. Sau đó chúng ta tạo một file php như sau để thử chức năng search. Có một điều thú vị là Sphinx không trả về dữ liệu mà nó chỉ trả về id của record chứa từ khóa ta cần tìm trong MySQL. Do vậy ta phải viết thêm một câu truy vấn để lấy dữ liệu thật.
Trước khi chạy code php này thì chúng ta phải start sercvice Sphinx mà ta install khi nãy.
Kết quả trả về:
id: 5 - title: MySQL vs. YourSQL - body: In the following database comparison ...
Như vậy là chúng ta đã biết cách làm thế nào để setup và chạy thử sphinx cùng với php/mysql trong môi trường Windows. Điều này có ích cho những ai phát triển web trên windows, trong các entry sau có thể chúng ta sẽ tìm hiểu cách cài đặt Sphin trong môi trường máy chủ Linux :).
References:
Packtpub Sphinx Search Beginners Guide http://www.crankberryblog.com/2011/intalling-sphinx-on-wamp-localhost-windows