這個寫起來很麻煩。我們的系統只是使用coreseek。說說我的想法。
1,先建壹個?搜索表,這個表用來存儲妳要搜索的分段數據。可以選擇自己的細分系統。我用的是php中的pscws4中文分詞。
下降?桌子?如果?存在嗎?`搜索`;
創造?桌子?`搜索`?(
` searchid `?int(11)?不是嗎?NULL?自動遞增,
`標題`?varchar(255)?不是嗎?空,
`內容`?文字?不是嗎?空,
`添加時間`?int(11)?不是嗎?空,
初級?鑰匙?(` searchid `)
)?ENGINE=MyISAM?AUTO_INCREMENT=15209?違約?CHARSET = utf82.需要指數盤點表嗎?Search_counter,該表用於存儲每次索引更新後的最大ID。下次更新索引時,不需要從頭開始更新,只需要比這個ID大的東西就可以了。
下降?桌子?如果?存在嗎?` search _ counter
創造?桌子?` search_counter `?(
` counter_id `?int(11)?不是嗎?空,
` max_doc_id `?int(11)?不是嗎?空,
初級?鑰匙?(` counter_id `)
)?ENGINE=InnoDB?違約?CHARSET = utf83.配置?Coreseek,下面是windows下的我?Coreseek的配置文件,linux在服務器上,我沒找。這裏配置了兩個索引源,壹個是main,壹個是incremental index delta,不需要每次都重建所有索引,合並就可以了?Main和delta都可以。
#源定義
來源?主要的
{
type=?關系型數據庫
sql_host=?192.168.0.10
sql_user=?根
sql_pass=?根
sql_db?=?數據庫
sql_port=?3306
sql_query_pre=?設置?名字?utf8
sql_query_pre=?替換?變成?搜索_計數器?選擇?1,?MAX(searchid)?從哪裏?qhb_search
sql_query=?選擇?searchid,?標題,?內容,?控制器id,?控制器,add_time?從哪裏?搜索
#sql_query第壹列id必須是整數。
#標題和內容用作字符串/文本字段,由全文索引。
#sql_attr_uint=?Searched #從SQL中讀取的值必須是整數。
sql_attr_uint=?控制器_id?#?數據庫ID過濾
sql_attr_uint=?控制器?#?控制器過濾
sql_attr_timestamp?=?add_time?#從SQL中讀取的值必須是作為時間屬性的整數。
sql_query_info_pre?=?設置?名字?Utf8#命令行查詢,設置正確的字符集。
#sql_query_info?=?選擇?*?從哪裏?qhb_search?在哪裏?searchid=$searchid?#查詢命令行時,從數據庫中讀取原始數據信息
}
來源?德爾塔?:?主要的
{
sql_query_pre?=?設置?名字?utf8
sql_query?=?選擇?searchid,?標題,?內容,?控制器id,?控制器,add_time?從哪裏?qhb_search?在哪裏?searchid & gt(?選擇?max_doc_id?從哪裏?qhb_search_counter?在哪裏?counter_id=1?)
sql_query_post?=?替換?變成?qhb_search_counter?選擇?1,?MAX(searchid)?從哪裏?qhb_search
}
#索引定義
指數?主要的
{
來源?=?主要?#相應的信號源名稱
路徑=?d:/web soft/coreseek/var/data/main?#請將其更改為實際的絕對路徑,例如:/usr/local/coreseek/var/...
docinfo?=?走讀生
mlock=?0
形態學?=?沒有人
min_word_len=?1
html_strip?=?0
#中文分詞配置,請看:/products-install/coreseek _ mmseg/
#charset_dictpath?=?/usr/local/mmseg3/etc/?#BSD和Linux環境中的設置,以/符號結尾。
charset_dictpath?=?D:/Websoft/CoreSEEK/etc/#在Windows環境下設置,並且在/符號的末尾,最好給出壹個絕對路徑,例如C:/usr/local/coreseek/etc/...
charset_type?=?zh_cn.utf-8
}
指數?德爾塔?:?主要的
{
來源?=?三角洲
路徑=?d:/web soft/coreseek/var/data/delta
}
#全局索引定義
分度器
{
mem_limit=?128米
}
#searchd服務定義
搜索d
{
聽著。=9312
read_timeout=?五
max_children=?30
max_matches?=?1000
無縫_旋轉?=?0
preopen_indexes?=?0
unlink_old?=?1
pid_file?=?d:/web soft/coreseek/var/log/searchd _ main . PID?#請將其更改為實際的絕對路徑,例如:/usr/local/coreseek/var/...
log=?d:/web soft/coreseek/var/log/searchd _ main . log #請將其更改為實際的絕對路徑,例如:/usr/local/coreseek/var/...
query_log?=?d:/web soft/coreseek/var/log/query _ main . log?#請將其更改為實際的絕對路徑,例如:/usr/local/coreseek/var/...
}4.建立索引。您必須首先創建壹個索引。Coreseek可以開始了。以下是我在Windows中的索引命令,所以我不會詳細介紹如何使用命令行。
d:\ WebSoft \ coreseek \ bin \ indexer?-所有人?-配置?d:\ web soft \ coreseek \ bin \ sphinx . conf 5。配置並啟動服務。
d:\ WebSoft \ coreseek \ bin \ search d?-安裝?-配置?
d:\ WebSoft \ coreseek \ bin \ sphinx . conf?-服務名稱?Coreseek6。Windows創建壹個計劃任務,並每分鐘更新壹次索引。
d:\ WebSoft \ coreseek \ bin \ indexer . exe?-配置?d:\ WebSoft \ coreseek \ bin \ sphinx . conf?德爾塔?-旋轉
回聲?索引,?窗戶?威爾。接近?什麽時候?完成7。Windows創建壹個計劃任務,並在每天淩晨2點合並索引。
d:\ WebSoft \ coreseek \ bin \ indexer . exe?-配置?d:\ WebSoft \ coreseek \ bin \ sphinx . conf?合並?主要?德爾塔?-旋轉
回聲?索引,?窗戶?威爾。接近?什麽時候?Complete8,附上windows和linux上創建索引、重建索引、合並索引的方法,以及使用中的壹些小問題。
窗口:
創建索引
d:\ WebSoft \ coreseek \ bin \ indexer?-所有人?-配置?d:\ WebSoft \ coreseek \ bin \ sphinx . conf
重建索引
d:\ WebSoft \ coreseek \ bin \ indexer?-配置?d:\ WebSoft \ coreseek \ bin \ sphinx . conf?主要?-旋轉
增量索引
d:\ WebSoft \ coreseek \ bin \ indexer?-配置?d:\ WebSoft \ coreseek \ bin \ sphinx . conf?德爾塔?-旋轉
合並索引
d:\ WebSoft \ coreseek \ bin \ indexer?-配置?d:\ WebSoft \ coreseek \ bin \ sphinx . conf?合並?主要?德爾塔?-旋轉
配置並啟動服務
d:\ WebSoft \ coreseek \ bin \ search d?-安裝?-配置?d:\ WebSoft \ coreseek \ bin \ sphinx . conf?-服務名稱?coreseek
如何創建自定義同義詞庫:
1,先走?/dict/?搜狗細胞詞庫下載需要的詞庫。
2.使用?深藍詞庫轉換?將同義詞庫轉換為?文本文件(textfile)
3.用PHP程序來?生成的txt轉換成?coreseek?要求的格式
4.附加到?unigram.txt
5.使用命令更新分詞詞典。
cmd?進入?Bin目錄下,執行以下命令
mmseg?-妳呢?d:\ WebSoft \ coreseek \ etc \ unigram . txt
6.會產生什麽?unigram.txt.uni?重命名為:uni.lib
7.重建索引
8.重新啟動coreseek服務。
註意:
必須先創建索引,然後才能啟動服務。
1,查詢時coreseek索引或提示錯誤:?無效?token?在?Etc解決方案
此提示表明當前配置文件的編碼不是UTF-8(無BOM頭)格式,無法正確解析。請使用編輯軟件打開配置文件,並將其保存為UTF-8(無BOM標題)格式。
2、失敗?去哪?鎖?.....試試?-旋轉?
索引已創建。使用重建索引命令。
3.報告警告:失敗?去哪?scanf?pid?從哪裏?
Coreseek服務未啟動。
4.過濾搜索結果,必須通過數組傳遞,並且只支持
無符號整數(1-32位寬);
UNIX?時間戳;
浮點值(32位,IEEE?754單精度);
字符串序列?(尤其是計算出來的整數值);
多值屬性?MVA(?多值?屬性?)?(32位無符號整數值的可變長度序列)
$ this-& gt;shpinx-& gt;SetFilter('控制器',?數組(1,2)?);
CENTOS?操作方法
引導並啟動coreseek搜索服務:
vi?/etc/rc.d/rc.local?
在最後壹行加上
/usr/local/coreseek/bin/searchd?-c?/usr/local/coreseek/bin/sphinx . conf
# #要停止搜索服務,請使用/usr/local/coreseek/bin/searchd?-c?/usr/local/coreseek/bin/sphinx . conf?-停下來
# #要啟動服務並更新索引,請使用/usr/local/coreseek/bin/indexer?-c?/usr/local/coreseek/bin/sphinx . conf?-所有人?-旋轉
在linux下編輯定時任務?crontab?-e
#在淩晨4點合並索引,其余時間每分鐘更新壹次索引。
*?0-3?*?*?*?/usr/local/sphinx/bin/indexer?-配置?/usr/local/sphinx/etc/sphinx . conf?德爾塔?-旋轉
*?6-23?*?*?*?/usr/local/sphinx/bin/indexer?-配置?/usr/local/sphinx/etc/sphinx . conf?德爾塔?-旋轉
0?4?*?*?*?/usr/local/sphinx/bin/indexer?-配置?/usr/local/sphinx/etc/sphinx . conf?合並?主要?德爾塔?-旋轉
啟動服務:
/usr/local/coreseek/bin/searchd?-c?/usr/local/coreseek/bin/sphinx . conf
創建索引
/usr/local/coreseek/bin/indexer?-所有人?-配置?/usr/local/coreseek/bin/sphinx . conf
重建索引
/usr/local/coreseek/bin/indexer?-配置?/usr/local/coreseek/bin/sphinx . conf?主要?-旋轉
增量索引
/usr/local/coreseek/bin/indexer?-配置?/usr/local/coreseek/bin/sphinx . conf?德爾塔?-旋轉
合並索引
/usr/local/coreseek/bin/indexer?-配置?/usr/local/coreseek/bin/sphinx . conf?合並?主要?德爾塔?-旋轉