前一陣子嘗試使用了一下Sphinx,一個可以被各類語言(PHP/Python/Ruby/etc)方便調用的全文檢索系統。網上的資料大可能是在linux環境下的安裝使用,固然,做爲生產環境頗有必要部署在*nix環境下,做爲學習測試,仍是windows環境比較方便些。 本文旨在提供一種便捷的方式讓Sphinx在windows下安裝配置以支持中文全文檢索,配置部分在linux下通用。 1、關於Sphinx Sphinx 是一個在GPLv2 下發布的一個全文檢索引擎,商業受權(例如, 嵌入到其餘程序中)須要聯繫做者(Sphinxsearch.com)以得到商業受權。 通常而言,Sphinx是一個獨立的搜索引擎,意圖爲其餘應用提供高速、低空間佔用、高結果相關度的全文搜索功能。Sphinx能夠很是容易的與SQL數據庫和腳本語言集成。 當前系統內置MySQL和PostgreSQL 數據庫數據源的支持,也支持從標準輸入讀取特定格式的XML數據。經過修改源代碼,用戶能夠自行增長新的數據源(例如:其餘類型的DBMS的原生支持)。 搜索API支持PHP、Python、Perl、Rudy和Java,而且也能夠用做MySQL存儲引擎。搜索API很是簡單,能夠在若干個小時以內移植到新的語言上。html
Sphinx特性: 高速的創建索引(在當代CPU上,峯值性能可達到10MB/秒); 高性能的搜索(在2–4GB的文本數據上,平均每次檢索響應時間小於0.1秒); 可處理海量數據(目前已知能夠處理超過100GB的文本數據,在單一CPU的系統上可處理100M文檔); 提供了優秀的相關度算法,基於短語類似度和統計(BM25)的複合Ranking方法; 支持分佈式搜索; 提供文件的摘錄生成; 可做爲MySQL的存儲引擎提供搜索服務; 支持布爾、短語、詞語類似度等多種檢索模式; 文檔支持多個全文檢索字段(最大不超過32個); 文檔支持多個額外的屬性信息(例如:分組信息,時間戳等); 中止詞查詢; 支持單一字節編碼和UTF-8編碼; 原生的MySQL支持(同時支持MyISAM和InnoDB); 原生的PostgreSQL支持. 中文手冊能夠在這裏得到,感謝譯者的辛勤工做。linux
2、Sphinx在windows上的安裝算法
1.直接在http://www.sphinxsearch.com/downloads.html找到最新的windows版本,我這裏下的是Win32 release binaries with MySQL support,下載後解壓在D:\sphinx-2.2.6目錄下;(我下載的在我附件) 數據庫
2.在sphinx-2.2.6下面新建文件夾命名 data和log windows
3.將 sphinx-min.conf.in文件複製到 sphinx-2.2.6/bin下面(這裏建議使用min版。測試) api
4.進入dos,切換到sphinx-2.6.6/bin下面:分佈式
D:\sphinx-2.2.6\bin>indexer.exe --config "d:/sphinx-2.2.6/bin/sphinx.conf" --all 性能
Sphinx 2.2.6-id64-release (r4843) Copyright (c) 2001-2014, Andrew Aksyonoff Copyright (c) 2008-2014, Sphinx Technologies Inc (http://sphinxsearch.com) 學習
using config file 'd:/sphinx-2.2.6/bin/sphinx.conf'... 測試
indexing index 'test1'... collected 4 docs, 0.0 MB sorted 0.0 Mhits, 100.0% done total 4 docs, 193 bytes total 0.045 sec, 4210 bytes/sec, 87.25 docs/sec
skipping non-plain index 'testrt'... total 3 reads, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg total 12 writes, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg
D:\sphinx-2.2.6\bin>searchd.exe --config "d:/sphinx-2.2.6/bin/sphinx.conf"
Sphinx 2.2.6-id64-release (r4843) Copyright (c) 2001-2014, Andrew Aksyonoff Copyright (c) 2008-2014, Sphinx Technologies Inc (http://sphinxsearch.com)
using config file 'd:/sphinx-2.2.6/bin/sphinx.conf'...
listening on all interfaces, port=9312 listening on all interfaces, port=9306
precaching index 'test1' precaching index 'testrt' precached 2 indexes in 0.007 sec
這個時候安裝正確而且運行了,不要關閉,這時任務管理器出現了searchd.exe服務 此時能夠運行api下面的test02使用了測試了。剩下的就很簡單了。