Tôi đã xem qua bài đăng này nhưng không tìm thấy câu trả lời mà tôi muốn xem. Đây là Hướng dẫn Bắt đầu Nhanh của tôi:
1. Cài đặt Sphinx
Trên Mac với Homebrew:
brew install sphinx
Trên Amazon Linux (CentOS) với yum:
yum install sphinx
2. Tạo cấu hình Sphinx
Sphinx đi kèm với mẫu cấu hình. Tìm sphinx.conf.dist trong thư mục configs:
Trên máy Mac được cài đặt với Homebrew:
/usr/local/Cellar/sphinx/<sphinx version>/etc
Trên Amazon Linux được cài đặt với yum:
/etc/sphinx
Nó khá đơn giản nhưng có thể chứa quá nhiều cài đặt cho người mới. Trong trường hợp này, bạn có thể sử dụng cấu hình đơn giản sau:
source TestSource {
type = mysql
sql_host = <host>
sql_user = <user>
sql_pass = <password>
sql_db = <db>
sql_query_range = select min(id), max(id) from TestTable
sql_range_step = 2048
sql_query = select id, some_info from TestTable\
where id >= $start and id <= $end
}
index TestIndex {
source = TestSource
path = /var/lib/sphinx/test-index
min_word_len = 3
min_infix_len = 3
}
searchd {
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
pid_file = /var/run/searchd.pid
max_matches = 200
listen = localhost:9312
}
Tôi đã thêm cài đặt max_matches vào cấu hình này vì câu hỏi đầu tiên của tôi sau khi tôi làm mọi thứ hoạt động là "Tại sao tôi luôn chỉ nhận được 20 kết quả tìm kiếm?". Với max_matches, bạn có thể đặt giới hạn cho số lượng kết quả tìm kiếm.
3. Tạo chỉ mục bằng cách sử dụng trình lập chỉ mục
indexer --all
4. Chạy daemon Sphinx
sudo searchd -c /path/to/config/sphinx.conf
5. Cài đặt phần mở rộng PHP Sphinx
Trên Mac với Homebrew:
brew install homebrew/php/php56-sphinx
Trên Amazon Linux với yum:
yum install libsphinxclient
pecl install sphinx
6. Truy vấn chỉ mục của bạn từ PHP
$index = new SphinxClient();
$index->setServer("127.0.0.1", 9312);
$result = $index->query('some search term', 'TestIndex');
print_r($result);
Trong trường hợp có bất kỳ sai sót nào, bạn có thể lấy thêm thông tin bằng phương pháp sau:
$index->getLastError();
7. Luôn cập nhật chỉ mục
Để duy trì một chỉ mục cập nhật, bạn có thể sử dụng hai chỉ số:
- Chỉ mục chính, không được cập nhật thường xuyên (một lần mỗi tuần, tháng, v.v.)
- Và chỉ mục delta, cập nhật thường xuyên (mỗi giờ, 5 phút, v.v.)
Mỗi khi chỉ mục delta được lập chỉ mục lại, nó sẽ được hợp nhất với chỉ mục chính
Theo liên kết này http://www.sphinxconsultant.com/sphinx-search-delta -indexing / để đọc thêm về phương pháp này.
Các liên kết tôi thấy hữu ích:
- http://sphinxsearch.com/docs/current.html
- http://sphinxsearch.com/info/faq/
- http://atlchris.com/1996/working-with-sphinx-search-engine-on-a-lamp-linux-apache-mysql-and-php-stack-server/
- http://www.sphinxconsultant.com/sphinx-search-delta -indexing /
- https://github.com/schmittjoh/ php-ste / tree / master / res / php / sphinx