打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
freebsd下安装sphinx及其配置文件和分布式检索
安装sphinx
CSFT介绍
CSFT,全称为CoreSeek Fulltext Search Server,也就是CoreSeek 全文检索服务器。Sphinx默认不支持中文索引及检索,CSFT是在Sphinx基础上开发的全文检索软件,按照GPLv2协议发行。Coreseek (http://www.coreseek.com) 为sphinx在中国地区的用户提供支持服务。
到写本文时,CSFT最新版为2009.6.7的3.1rc1版。所有版本发表和修订记录见:http://www.coreseek.cn/products/ft_changelog/
CSFT下载
下载地址:http://www.coreseek.cn/products/ft_down/
选择Source版. Coreseek Fulltext Server(源代码) Coreseek Mmseg(源代码)
安装配置CSFT
1.安装mmseg
1.tar zxvf mmseg-3.1.tar.gz
2.   cd mmseg-3.1
3.   ./configure –prefix=/usr/local/mmseg
4.   make && make install
2.安装csft
1.tar zxvf csft-3.1.tar.gz
2.   cd csft-3.1
3.   ./configure –prefix=/usr/local/sphinx -with-mysql=/usr/local/mysql -with-mysql-includes=/usr/local/mysql/include/mysql -with-mysql-libs=/usr/local/mysql/lib/mysql -with-mmseg-includes=/usr/local/mmseg/include/mmseg -with-mmseg-libs=/usr/local/mmseg/lib -with-mmseg
4.   make && make install
注意:在make时若提示找不到iconv,则在configure结束后在src下的Makefile中查找到LIBS,然后加上 -liconv
3.生成词典
重回到mmseg的源代码目录
1.cd data
2.   mmseg -u unigram.txt
3.   mv  unigram.txt.uni  uni.lib
4.  cp uni.lib /usr/local/sphinx/data/
5.新建mmseg.ini,输入如下内容:
6.[mmseg]
merge_number_and_ascii=1;
number_and_ascii_joint=-;
compress_space=0;
seperate_number_ascii=1;
#merge_number_and_ascii: 字母和数字连续出现是非切分
#number_and_ascii_joint:连接数字和字母可用的符号,如'-' '.' 等
#compress_space:暂时无效
#seperate_number_ascii:是否拆分数字,如 1988 -> 1/x 9/x 8/x 8/x
 4.配置索引文件,如下sphinx配置文件,如存在增量索引,请建立下表search_counter:
view plaincopy to clipboardprint?
01.SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";  
02. 
03.--  
04.-- 数据库: `xmfish_sp3`  
05.--  
06. 
07.-- --------------------------------------------------------  
08. 
09.--  
10.-- 表的结构 `search_counter`  
11.--  
12. 
13.CREATE TABLE IF NOT EXISTS `search_counter` (  
14.  `counterid` int(11) NOT NULL DEFAULT '0',  
15.  `max_doc_id` int(11) NOT NULL DEFAULT '0',  
16.  `min_doc_id` int(10) NOT NULL DEFAULT '0',  
17.  PRIMARY KEY (`counterid`)  
18.) ENGINE=MyISAM DEFAULT CHARSET=gbk; 
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- 数据库: `xmfish_sp3`
--
-- --------------------------------------------------------
--
-- 表的结构 `search_counter`
--
CREATE TABLE IF NOT EXISTS `search_counter` (
  `counterid` int(11) NOT NULL DEFAULT '0',
  `max_doc_id` int(11) NOT NULL DEFAULT '0',
  `min_doc_id` int(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`counterid`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk;
 
 5.建立索引 bin/indexer --all(threadsindex)
 6.测试搜索 bin/search 'keyword';也可以直接跳到7、8进行测试
 7.开启searchd服务 /usr/local/sphinx/bin/searchd &
 8.把sphinxapi.php和sphinx.php放到程序目录下进行测试
 9.随机启动searchd,echo "/usr/local/sphinx/bin/searchd">>/etc/rc.local
sphinx配置文件和分布式检索
view plaincopy to clipboardprint?
01.source tmsgs  
02.{  
03.        type                                    = mysql  
04.        sql_host                                = localhost  
05.        sql_user                                = root  
06.        sql_pass                                = phpwind.net  
07.        sql_db                                  = pw_test  
08.        sql_port                                = 3306  # optional, default is 3306 
09.    #sql_sock                                = /tmp/mysql3307.sock  
10.    sql_query_pre                           = SET NAMES gbk  
11.        sql_query_pre                           = SET SESSION query_cache_type=OFF  
12.    sql_query_pre                           = REPLACE INTO search_counter SELECT 1,MAX(tid)+1,MIN(tid) FROM pw_tmsgs  
13.    sql_query_range                 = SELECT min_doc_id, max_doc_id FROM search_counter WHERE counterid = 1  
14.        sql_range_step                          = 1000  
15.        sql_query                               = SELECT th.tid,th.subject,th.authorid,th.postdate,th.lastpost,th.fid,th.digest,th.hits,th.replies,t.content FROM pw_threads th  LEFT JOIN pw_tmsgs t USING(tid) WHERE th.tid >= $start AND th.tid < $end  
16.          
17.        sql_attr_uint                           = authorid  
18.    sql_attr_uint                           = hits  
19.    sql_attr_uint                           = replies  
20.    sql_attr_uint                           = fid  
21.    sql_attr_timestamp                      = postdate  
22.    sql_attr_timestamp                      = lastpost  
23.    sql_attr_uint                           = digest  
24.}  
25. 
26.source addtmsgs  
27.{  
28.    type                                    = mysql  
29.        sql_host                                = localhost  
30.        sql_user                                = root  
31.        sql_pass                                = phpwind.net  
32.        sql_db                                  = pw_test  
33.        sql_port                                = 3306  # optional, default is 3306 
34.    #sql_sock                                = /tmp/mysql3307.sock  
35.    sql_query_pre                           = SET NAMES gbk  
36.    sql_query_pre                           = SET SESSION query_cache_type=OFF  
37.        sql_query_range                 = SELECT max_doc_id, max_doc_id+100000 FROM search_counter WHERE counterid = 1  
38.        sql_range_step                          = 100000  
39.        sql_query                               = SELECT th.tid,th.subject,th.authorid,th.postdate,th.lastpost,th.fid,th.digest,th.hits,th.replies,t.content FROM pw_threads th  LEFT JOIN pw_tmsgs t USING(tid) WHERE th.tid >= $start AND th.tid < $end  
40.          
41.        sql_attr_uint                           = authorid  
42.    sql_attr_uint                           = hits  
43.    sql_attr_uint                           = replies  
44.    sql_attr_uint                           = fid  
45.    sql_attr_timestamp                      = postdate  
46.    sql_attr_timestamp                      = lastpost  
47.    sql_attr_uint                           = digest  
48.    sql_query_post                         = REPLACE INTO search_counter SELECT 1,MAX(tid)+1,MIN(tid) FROM pw_tmsgs 
49.         
50.        #sql_attr_uint                          = tid  
51.}  
52. 
53.source threads  
54.{  
55.        type                                    = mysql  
56.        sql_host                                = localhost  
57.        sql_user                                = root  
58.        sql_pass                                = phpwind.net  
59.        sql_db                                  = pw_test  
60.        sql_port                                = 3306  # optional, default is 3306 
61.    #sql_sock                                = /tmp/mysql3307.sock  
62.    sql_query_pre                           = SET NAMES gbk  
63.        sql_query_pre                           = SET SESSION query_cache_type=OFF  
64.    sql_query_pre                           = REPLACE INTO search_counter SELECT 3,MAX(tid)+1,MIN(tid) FROM pw_threads  
65.    sql_query_range                 = SELECT min_doc_id, max_doc_id FROM search_counter WHERE counterid = 3  
66.        sql_range_step                          = 1000  
67.        sql_query                               = SELECT th.tid,th.subject,th.authorid,th.postdate,th.lastpost,th.fid,th.digest,th.hits,th.replies FROM pw_threads th  WHERE th.tid >= $start AND th.tid < $end  
68.        sql_attr_uint                           = authorid  
69.    sql_attr_uint                           = hits  
70.    sql_attr_uint                           = replies  
71.    sql_attr_uint                           = fid  
72.    sql_attr_timestamp                      = postdate  
73.    sql_attr_timestamp                      = lastpost  
74.    sql_attr_uint                           = digest  
75.}  
76. 
77.source addthreads  
78.{  
79.        type                                    = mysql  
80.        sql_host                                = localhost  
81.        sql_user                                = root  
82.        sql_pass                                = phpwind.net  
83.        sql_db                                  = pw_test  
84.        sql_port                                = 3306  # optional, default is 3306 
85.    #sql_sock                                = /tmp/mysql3307.sock  
86.    sql_query_pre                           = SET NAMES gbk  
87.    sql_query_pre                           = SET SESSION query_cache_type=OFF  
88.        sql_query_range                 = SELECT max_doc_id, max_doc_id+100000 FROM search_counter WHERE counterid = 3  
89.        sql_range_step                          = 100000  
90.        sql_query                               = SELECT th.tid,th.subject,th.authorid,th.postdate,th.lastpost,th.fid,th.digest,th.hits,th.replies FROM pw_threads th  WHERE th.tid >= $start AND th.tid < $end  
91.          
92.        sql_attr_uint                           = authorid  
93.    sql_attr_uint                           = hits  
94.    sql_attr_uint                           = replies  
95.    sql_attr_uint                           = fid  
96.    sql_attr_timestamp                      = postdate  
97.    sql_attr_timestamp                      = lastpost  
98.    sql_attr_uint                           = digest  
99.    sql_query_post                         = REPLACE INTO search_counter SELECT 3,MAX(tid)+1,MIN(tid) FROM pw_threads 
100.         
101.        #sql_attr_uint                          = tid  
102.} 
103.#会员表主索引  
104.source members  
105.{  
106.        type                                    = mysql  
107.        sql_host                                = localhost  
108.        sql_user                                = root  
109.        sql_pass                                = phpwind.net  
110.        sql_db                                  = pw_test  
111.        sql_port                                = 3306  # optional, default is 3306 
112.    #sql_sock                                = /tmp/mysql3307.sock  
113.    sql_query_pre                           = SET NAMES gbk  
114.        sql_query_pre                           = SET SESSION query_cache_type=OFF  
115.    sql_query_pre                           = REPLACE INTO search_counter SELECT 4,MAX(uid)+1,MIN(uid) FROM pw_members  
116.    sql_query_range                 = SELECT min_doc_id, max_doc_id FROM search_counter WHERE counterid = 4  
117.        sql_range_step                          = 1000  
118.        sql_query                               = SELECT m.uid,username,groupid,email,oicq,msn,introduce,signature,regdate,onlineip,thisvisit,postnum,lastpost FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE m.uid >= $start AND m.uid < $end  
119.    sql_attr_uint                           = groupid  
120.    sql_attr_uint                           = username  
121.    sql_attr_uint                           = postnum  
122.    sql_attr_timestamp                      = regdate  
123.    sql_attr_timestamp                      = thisvisit  
124.    sql_attr_timestamp                      = lastpost  
125.} 
126.#会员表增量索引  
127.source addmembers  
128.{  
129.        type                                    = mysql  
130.        sql_host                                = localhost  
131.        sql_user                                = root  
132.        sql_pass                                = phpwind.net  
133.        sql_db                                  = pw_test  
134.        sql_port                                = 3306  # optional, default is 3306 
135.    #sql_sock                                = /tmp/mysql3307.sock  
136.    sql_query_pre                           = SET NAMES gbk  
137.        sql_query_pre                           = SET SESSION query_cache_type=OFF  
138.    sql_query_range                 = SELECT max_doc_id, max_doc_id+100000 FROM search_counter WHERE counterid = 4  
139.        sql_range_step                          = 100000  
140.        sql_query                               = SELECT m.uid,username,groupid,email,oicq,msn,introduce,signature,regdate,onlineip,thisvisit,postnum,lastpost FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE m.uid >= $start AND m.uid < $end  
141.    sql_attr_uint                           = groupid  
142.    sql_attr_uint                           = username  
143.    sql_attr_uint                           = postnum  
144.    sql_attr_timestamp                      = regdate  
145.    sql_attr_timestamp                      = thisvisit  
146.    sql_attr_timestamp                      = lastpost  
147.    sql_query_post                          = REPLACE INTO search_counter SELECT 4,MAX(uid)+1,MIN(uid) FROM pw_members  
148.} 
149.#会员帖子签名主索引  
150.source signatures  
151.{  
152.        type                                    = mysql  
153.        sql_host                                = localhost  
154.        sql_user                                = root  
155.        sql_pass                                = phpwind.net  
156.        sql_db                                  = pw_test  
157.        sql_port                                = 3306  # optional, default is 3306 
158.    #sql_sock                                = /tmp/mysql3307.sock  
159.    sql_query_pre                           = SET NAMES gbk  
160.        sql_query_pre                           = SET SESSION query_cache_type=OFF  
161.    sql_query_pre                           = REPLACE INTO search_counter SELECT 5,MAX(uid)+1,MIN(uid) FROM pw_members  
162.    sql_query_range                 = SELECT min_doc_id, max_doc_id FROM search_counter WHERE counterid = 5  
163.        sql_range_step                          = 1000  
164.        sql_query                               = SELECT m.uid,username,groupid,signature,regdate,onlineip,thisvisit,postnum,lastpost FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE m.uid >= $start AND m.uid < $end  
165.    sql_attr_uint                           = groupid  
166.    sql_attr_uint                           = username  
167.    sql_attr_uint                           = postnum  
168.    sql_attr_timestamp                      = regdate  
169.    sql_attr_timestamp                      = thisvisit  
170.    sql_attr_timestamp                      = lastpost  
171.} 
172.#会员帖子签名增量索引  
173.source addsignatures  
174.{  
175.        type                                    = mysql  
176.        sql_host                                = localhost  
177.        sql_user                                = root  
178.        sql_pass                                = phpwind.net  
179.        sql_db                                  = pw_test  
180.        sql_port                                = 3306  # optional, default is 3306 
181.    #sql_sock                                = /tmp/mysql3307.sock  
182.    sql_query_pre                           = SET NAMES gbk  
183.        sql_query_pre                           = SET SESSION query_cache_type=OFF  
184.    sql_query_range                 = SELECT max_doc_id, max_doc_id+100000 FROM search_counter WHERE counterid = 45  
185.        sql_range_step                          = 100000  
186.        sql_query                               = SELECT m.uid,username,groupid,signature,regdate,onlineip,thisvisit,postnum,lastpost FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE m.uid >= $start AND m.uid < $end  
187.    sql_attr_uint                           = groupid  
188.    sql_attr_uint                           = username  
189.    sql_attr_uint                           = postnum  
190.    sql_attr_timestamp                      = regdate  
191.    sql_attr_timestamp                      = thisvisit  
192.    sql_attr_timestamp                      = lastpost  
193.    sql_query_post                          = REPLACE INTO search_counter SELECT 5,MAX(uid)+1,MIN(uid) FROM pw_members  
194.}  
195. 
196.index tmsgsindex  
197.{  
198.        source                                  = tmsgs  
199.        path                                    = D:\pwsc\data\tmsgs  
200.        docinfo                                 = extern 
201.        charset_type                            = zh_cn.gbk  
202.    #min_prefix_len  = 0 
203.    #min_infix_len  = 2 
204.    #ngram_len = 2  
205.        charset_dictpath                        = D:\pwsc\dict  
206.        min_prefix_len                          = 0  
207.        min_infix_len                           = 0  
208.        min_word_len                            = 2  
209.}  
210. 
211.index addtmsgsindex  
212.{  
213.        source                                  = addtmsgs  
214.        path                                    = D:\pwsc\data\addtmsgs  
215.        docinfo                                 = extern 
216.        charset_type  = zh_cn.gbk 
217.    #min_infix_len  = 2 
218.    #ngram_len = 2  
219. 
220. 
221.        charset_dictpath                    = D:\pwsc\dict  
222.        min_prefix_len                        = 0  
223.        min_infix_len                          = 0  
224.        min_word_len                         = 2  
225.}  
226.index threadsindex  
227.{  
228.        source                                  = threads  
229.        path                                    = D:\pwsc\data\threads  
230.        docinfo                                 = extern 
231.        charset_type                            = zh_cn.gbk  
232.    #min_prefix_len  = 0 
233.    #min_infix_len  = 2 
234.    #ngram_len = 2  
235.        charset_dictpath                        = D:\pwsc\dict  
236.        min_prefix_len                          = 0  
237.        min_infix_len                           = 0  
238.        min_word_len                            = 2  
239.}  
240. 
241.index addthreadsindex  
242.{  
243.        source                                  = addthreads  
244.        path                                    = D:\pwsc\data\addthreads  
245.        docinfo                                 = extern 
246.        charset_type  = zh_cn.gbk 
247.    #min_infix_len  = 2 
248.    #ngram_len = 2  
249. 
250. 
251.        charset_dictpath                    = D:\pwsc\dict  
252.        min_prefix_len                        = 0  
253.        min_infix_len                          = 0  
254.        min_word_len                         = 2  
255.}  
256. 
257.index membersindex  
258.{  
259.        source                                  = members  
260.        path                                    = D:\pwsc\data\members  
261.        docinfo                                 = extern 
262.        charset_type                            = zh_cn.gbk  
263.    #min_prefix_len  = 0 
264.    #min_infix_len  = 2 
265.    #ngram_len = 2  
266.        charset_dictpath                        = D:\pwsc\dict  
267.        min_prefix_len                          = 0  
268.        min_infix_len                           = 0  
269.        min_word_len                            = 2  
270.}  
271. 
272.index addmembersindex  
273.{  
274.        source                                  = addmembers  
275.        path                                    = D:\pwsc\data\addmembers  
276.        docinfo                                 = extern 
277.        charset_type                            = zh_cn.gbk  
278.    #min_prefix_len  = 0 
279.    #min_infix_len  = 2 
280.    #ngram_len = 2  
281.        charset_dictpath                        = D:\pwsc\dict  
282.        min_prefix_len                          = 0  
283.        min_infix_len                           = 0  
284.        min_word_len                            = 2  
285.}  
286. 
287.index signaturesindex  
288.{  
289.        source                                  = signatures  
290.        path                                    = D:\pwsc\data\signatures  
291.        docinfo                                 = extern 
292.        charset_type                            = zh_cn.gbk  
293.    #min_prefix_len  = 0 
294.    #min_infix_len  = 2 
295.    #ngram_len = 2  
296.        charset_dictpath                        = D:\pwsc\dict  
297.        min_prefix_len                          = 0  
298.        min_infix_len                           = 0  
299.        min_word_len                            = 2  
300.}  
301. 
302.index addsignaturesindex  
303.{  
304.        source                                  = addsignatures  
305.        path                                    = D:\pwsc\data\addsignatures  
306.        docinfo                                 = extern 
307.        charset_type                            = zh_cn.gbk  
308.    #min_prefix_len  = 0 
309.    #min_infix_len  = 2 
310.    #ngram_len = 2  
311.        charset_dictpath                        = D:\pwsc\dict  
312.        min_prefix_len                          = 0  
313.        min_infix_len                           = 0  
314.        min_word_len                            = 2  
315.}  
316.indexer  
317.{  
318.        mem_limit                               = 128M  
319.}  
320. 
321.searchd  
322.{  
323.        port                                = 3312  
324.        log                                 = D:\pwsc\logs\searchd.log  
325.        query_log                           = D:\pwsc\logs\query.log  
326.        read_timeout                        = 5  
327.        max_children                        = 30  
328.        pid_file                                = D:\pwsc\logs\searchd.pid  
329.        max_matches                         = 1000 
330.       # seamless_rotate                     = 1  
331.        preopen_indexes                     = 0  
332.        unlink_old                          = 1  
333.} 
source tmsgs
{
        type                                    = mysql
        sql_host                                = localhost
        sql_user                                = root
        sql_pass                                = phpwind.net
        sql_db                                  = pw_test
        sql_port                                = 3306  # optional, default is 3306
 #sql_sock                                = /tmp/mysql3307.sock
 sql_query_pre                           = SET NAMES gbk
        sql_query_pre                           = SET SESSION query_cache_type=OFF
 sql_query_pre                           = REPLACE INTO search_counter SELECT 1,MAX(tid)+1,MIN(tid) FROM pw_tmsgs
 sql_query_range           = SELECT min_doc_id, max_doc_id FROM search_counter WHERE counterid = 1
        sql_range_step                          = 1000
        sql_query                               = SELECT th.tid,th.subject,th.authorid,th.postdate,th.lastpost,th.fid,th.digest,th.hits,th.replies,t.content FROM pw_threads th  LEFT JOIN pw_tmsgs t USING(tid) WHERE th.tid >= $start AND th.tid < $end
       
        sql_attr_uint                           = authorid
 sql_attr_uint                           = hits
 sql_attr_uint                           = replies
 sql_attr_uint                           = fid
 sql_attr_timestamp                      = postdate
 sql_attr_timestamp                      = lastpost
 sql_attr_uint                           = digest
}
source addtmsgs
{
 type                                    = mysql
        sql_host                                = localhost
        sql_user                                = root
        sql_pass                                = phpwind.net
        sql_db                                  = pw_test
        sql_port                                = 3306  # optional, default is 3306
 #sql_sock                                = /tmp/mysql3307.sock
 sql_query_pre                           = SET NAMES gbk
 sql_query_pre                           = SET SESSION query_cache_type=OFF
        sql_query_range           = SELECT max_doc_id, max_doc_id+100000 FROM search_counter WHERE counterid = 1
        sql_range_step                          = 100000
        sql_query                               = SELECT th.tid,th.subject,th.authorid,th.postdate,th.lastpost,th.fid,th.digest,th.hits,th.replies,t.content FROM pw_threads th  LEFT JOIN pw_tmsgs t USING(tid) WHERE th.tid >= $start AND th.tid < $end
       
        sql_attr_uint                           = authorid
 sql_attr_uint                           = hits
 sql_attr_uint                           = replies
 sql_attr_uint                           = fid
 sql_attr_timestamp                      = postdate
 sql_attr_timestamp                      = lastpost
 sql_attr_uint                           = digest
 sql_query_post                         = REPLACE INTO search_counter SELECT 1,MAX(tid)+1,MIN(tid) FROM pw_tmsgs
       
        #sql_attr_uint                          = tid
}
source threads
{
        type                                    = mysql
        sql_host                                = localhost
        sql_user                                = root
        sql_pass                                = phpwind.net
        sql_db                                  = pw_test
        sql_port                                = 3306  # optional, default is 3306
 #sql_sock                                = /tmp/mysql3307.sock
 sql_query_pre                           = SET NAMES gbk
        sql_query_pre                           = SET SESSION query_cache_type=OFF
 sql_query_pre                           = REPLACE INTO search_counter SELECT 3,MAX(tid)+1,MIN(tid) FROM pw_threads
 sql_query_range           = SELECT min_doc_id, max_doc_id FROM search_counter WHERE counterid = 3
        sql_range_step                          = 1000
        sql_query                               = SELECT th.tid,th.subject,th.authorid,th.postdate,th.lastpost,th.fid,th.digest,th.hits,th.replies FROM pw_threads th  WHERE th.tid >= $start AND th.tid < $end
        sql_attr_uint                           = authorid
 sql_attr_uint                           = hits
 sql_attr_uint                           = replies
 sql_attr_uint                           = fid
 sql_attr_timestamp                      = postdate
 sql_attr_timestamp                      = lastpost
 sql_attr_uint                           = digest
}
source addthreads
{
        type                                    = mysql
        sql_host                                = localhost
        sql_user                                = root
        sql_pass                                = phpwind.net
        sql_db                                  = pw_test
        sql_port                                = 3306  # optional, default is 3306
 #sql_sock                                = /tmp/mysql3307.sock
 sql_query_pre                           = SET NAMES gbk
 sql_query_pre                           = SET SESSION query_cache_type=OFF
        sql_query_range           = SELECT max_doc_id, max_doc_id+100000 FROM search_counter WHERE counterid = 3
        sql_range_step                          = 100000
        sql_query                               = SELECT th.tid,th.subject,th.authorid,th.postdate,th.lastpost,th.fid,th.digest,th.hits,th.replies FROM pw_threads th  WHERE th.tid >= $start AND th.tid < $end
       
        sql_attr_uint                           = authorid
 sql_attr_uint                           = hits
 sql_attr_uint                           = replies
 sql_attr_uint                           = fid
 sql_attr_timestamp                      = postdate
 sql_attr_timestamp                      = lastpost
 sql_attr_uint                           = digest
 sql_query_post                         = REPLACE INTO search_counter SELECT 3,MAX(tid)+1,MIN(tid) FROM pw_threads
       
        #sql_attr_uint                          = tid
}
#会员表主索引
source members
{
        type                                    = mysql
        sql_host                                = localhost
        sql_user                                = root
        sql_pass                                = phpwind.net
        sql_db                                  = pw_test
        sql_port                                = 3306  # optional, default is 3306
 #sql_sock                                = /tmp/mysql3307.sock
 sql_query_pre                           = SET NAMES gbk
        sql_query_pre                           = SET SESSION query_cache_type=OFF
 sql_query_pre                           = REPLACE INTO search_counter SELECT 4,MAX(uid)+1,MIN(uid) FROM pw_members
 sql_query_range           = SELECT min_doc_id, max_doc_id FROM search_counter WHERE counterid = 4
        sql_range_step                          = 1000
        sql_query                               = SELECT m.uid,username,groupid,email,oicq,msn,introduce,signature,regdate,onlineip,thisvisit,postnum,lastpost FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE m.uid >= $start AND m.uid < $end
 sql_attr_uint                           = groupid
 sql_attr_uint                           = username
 sql_attr_uint                           = postnum
 sql_attr_timestamp                      = regdate
 sql_attr_timestamp                      = thisvisit
 sql_attr_timestamp                      = lastpost
}
#会员表增量索引
source addmembers
{
        type                                    = mysql
        sql_host                                = localhost
        sql_user                                = root
        sql_pass                                = phpwind.net
        sql_db                                  = pw_test
        sql_port                                = 3306  # optional, default is 3306
 #sql_sock                                = /tmp/mysql3307.sock
 sql_query_pre                           = SET NAMES gbk
        sql_query_pre                           = SET SESSION query_cache_type=OFF
 sql_query_range           = SELECT max_doc_id, max_doc_id+100000 FROM search_counter WHERE counterid = 4
        sql_range_step                          = 100000
        sql_query                               = SELECT m.uid,username,groupid,email,oicq,msn,introduce,signature,regdate,onlineip,thisvisit,postnum,lastpost FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE m.uid >= $start AND m.uid < $end
 sql_attr_uint                           = groupid
 sql_attr_uint                           = username
 sql_attr_uint                           = postnum
 sql_attr_timestamp                      = regdate
 sql_attr_timestamp                      = thisvisit
 sql_attr_timestamp                      = lastpost
 sql_query_post                          = REPLACE INTO search_counter SELECT 4,MAX(uid)+1,MIN(uid) FROM pw_members
}
#会员帖子签名主索引
source signatures
{
        type                                    = mysql
        sql_host                                = localhost
        sql_user                                = root
        sql_pass                                = phpwind.net
        sql_db                                  = pw_test
        sql_port                                = 3306  # optional, default is 3306
 #sql_sock                                = /tmp/mysql3307.sock
 sql_query_pre                           = SET NAMES gbk
        sql_query_pre                           = SET SESSION query_cache_type=OFF
 sql_query_pre                           = REPLACE INTO search_counter SELECT 5,MAX(uid)+1,MIN(uid) FROM pw_members
 sql_query_range           = SELECT min_doc_id, max_doc_id FROM search_counter WHERE counterid = 5
        sql_range_step                          = 1000
        sql_query                               = SELECT m.uid,username,groupid,signature,regdate,onlineip,thisvisit,postnum,lastpost FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE m.uid >= $start AND m.uid < $end
 sql_attr_uint                           = groupid
 sql_attr_uint                           = username
 sql_attr_uint                           = postnum
 sql_attr_timestamp                      = regdate
 sql_attr_timestamp                      = thisvisit
 sql_attr_timestamp                      = lastpost
}
#会员帖子签名增量索引
source addsignatures
{
        type                                    = mysql
        sql_host                                = localhost
        sql_user                                = root
        sql_pass                                = phpwind.net
        sql_db                                  = pw_test
        sql_port                                = 3306  # optional, default is 3306
 #sql_sock                                = /tmp/mysql3307.sock
 sql_query_pre                           = SET NAMES gbk
        sql_query_pre                           = SET SESSION query_cache_type=OFF
 sql_query_range           = SELECT max_doc_id, max_doc_id+100000 FROM search_counter WHERE counterid = 45
        sql_range_step                          = 100000
        sql_query                               = SELECT m.uid,username,groupid,signature,regdate,onlineip,thisvisit,postnum,lastpost FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE m.uid >= $start AND m.uid < $end
 sql_attr_uint                           = groupid
 sql_attr_uint                           = username
 sql_attr_uint                           = postnum
 sql_attr_timestamp                      = regdate
 sql_attr_timestamp                      = thisvisit
 sql_attr_timestamp                      = lastpost
 sql_query_post                          = REPLACE INTO search_counter SELECT 5,MAX(uid)+1,MIN(uid) FROM pw_members
}
index tmsgsindex
{
        source                                  = tmsgs
        path                                    = D:\pwsc\data\tmsgs
        docinfo                                 = extern
        charset_type                            = zh_cn.gbk
 #min_prefix_len  = 0
 #min_infix_len  = 2
 #ngram_len = 2
        charset_dictpath                        = D:\pwsc\dict
        min_prefix_len                          = 0
        min_infix_len                           = 0
        min_word_len                            = 2
}
index addtmsgsindex
{
        source                                  = addtmsgs
        path                                    = D:\pwsc\data\addtmsgs
        docinfo                                 = extern
        charset_type  = zh_cn.gbk
 #min_infix_len  = 2
 #ngram_len = 2

        charset_dictpath                    = D:\pwsc\dict
        min_prefix_len                        = 0
        min_infix_len                          = 0
        min_word_len                         = 2
}
index threadsindex
{
        source                                  = threads
        path                                    = D:\pwsc\data\threads
        docinfo                                 = extern
        charset_type                            = zh_cn.gbk
 #min_prefix_len  = 0
 #min_infix_len  = 2
 #ngram_len = 2
        charset_dictpath                        = D:\pwsc\dict
        min_prefix_len                          = 0
        min_infix_len                           = 0
        min_word_len                            = 2
}
index addthreadsindex
{
        source                                  = addthreads
        path                                    = D:\pwsc\data\addthreads
        docinfo                                 = extern
        charset_type  = zh_cn.gbk
 #min_infix_len  = 2
 #ngram_len = 2

        charset_dictpath                    = D:\pwsc\dict
        min_prefix_len                        = 0
        min_infix_len                          = 0
        min_word_len                         = 2
}
index membersindex
{
        source                                  = members
        path                                    = D:\pwsc\data\members
        docinfo                                 = extern
        charset_type                            = zh_cn.gbk
 #min_prefix_len  = 0
 #min_infix_len  = 2
 #ngram_len = 2
        charset_dictpath                        = D:\pwsc\dict
        min_prefix_len                          = 0
        min_infix_len                           = 0
        min_word_len                            = 2
}
index addmembersindex
{
        source                                  = addmembers
        path                                    = D:\pwsc\data\addmembers
        docinfo                                 = extern
        charset_type                            = zh_cn.gbk
 #min_prefix_len  = 0
 #min_infix_len  = 2
 #ngram_len = 2
        charset_dictpath                        = D:\pwsc\dict
        min_prefix_len                          = 0
        min_infix_len                           = 0
        min_word_len                            = 2
}
index signaturesindex
{
        source                                  = signatures
        path                                    = D:\pwsc\data\signatures
        docinfo                                 = extern
        charset_type                            = zh_cn.gbk
 #min_prefix_len  = 0
 #min_infix_len  = 2
 #ngram_len = 2
        charset_dictpath                        = D:\pwsc\dict
        min_prefix_len                          = 0
        min_infix_len                           = 0
        min_word_len                            = 2
}
index addsignaturesindex
{
        source                                  = addsignatures
        path                                    = D:\pwsc\data\addsignatures
        docinfo                                 = extern
        charset_type                            = zh_cn.gbk
 #min_prefix_len  = 0
 #min_infix_len  = 2
 #ngram_len = 2
        charset_dictpath                        = D:\pwsc\dict
        min_prefix_len                          = 0
        min_infix_len                           = 0
        min_word_len                            = 2
}
indexer
{
        mem_limit                               = 128M
}
searchd
{
        port                                = 3312
        log                                 = D:\pwsc\logs\searchd.log
        query_log                           = D:\pwsc\logs\query.log
        read_timeout                        = 5
        max_children                        = 30
        pid_file                                = D:\pwsc\logs\searchd.pid
        max_matches                         = 1000
       # seamless_rotate                     = 1
        preopen_indexes                     = 0
        unlink_old                          = 1
}
 
分布式检索
index test{
    type=distributed
    agent=localhost:3312:index1,index2....
    agent=192.168.1.2:3312:index3,index4.....
    agent_connect_timeout=1000
    agent_query_timeout=3000
}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/iloveolerp/archive/2009/12/17/5027541.aspx
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Discuz!系列教程
php – MySQL查询性能和Codeigniter
基于C语言Dll调用的pythonqq的一个应用拜年消息群发器的开发 - 开发 - 人日子...
Android 之 ServiceManager与服务管理
[shell]实现快速更新sphinx索引库文件
php&mysql简单留言板_学习php入门参考资料
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服