當前位置:成語大全網 - 漢語詞典 - coreseek3.2 php如何更新索引?

coreseek3.2 php如何更新索引?

Php不能更新?coreseek?對於的索引,您需要使用coreseek語法通過計時任務自動更新索引。

這個寫起來很麻煩。我們的系統只是使用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?合並?主要?德爾塔?-旋轉