Sphinx配置文件分析

#以Sphinx配置文件中,主要包括五只片:source部分、index部分、searchd部分、indexer部分和common部分(前四有比较主要);

#source是数据源,index负责定义索引,searchd负责定义searchd守护进程的有关选项,indexer负责定义生成索引的过程被索引的功能性限制;

#当数据源source中,type指定数据库的门类,目前Sphinx只支持有限种档次的数据库,一种是MySQL;

#sql_host指定主机,sql_user和sql_pass对许数据库的账号密码,sql_db指定数据表,sql_port指定通信的端口;

#sql_query_pre指定在装有的数据库操作前要开展的环境设置,例如指定utf-8和缓存属性;

#sql_query指定数据库查询语句,这个地方一般不点名where和order by、group
by等选择,这些业务一般交给Sphinx去过滤,不过对分布式查询可能会见有所区别;

#关于sql_field_string、sql_ranged_throttle会在后头介绍;

#sql_attr_uint用来安数据项为无符号整型,如发任何类似性可做类比知道;

#sql_query_info是sql_query的调节版本,因为计划的问题在运作的状态中不时闹问题,注释掉不使用;

 

#当索引index中,source指定数据源,path指定数据源的断地址,docinfo定义文档信息的囤积模式,extern表示文档信息与文档id分开存放,mlock设置已缓存数据的内存锁定,为0的时不锁定;

#morphology用于安装词形处理器,这个在后会产生详尽介绍;

#min_word_len字面意思就是可知懂,对于华语来说,设置成1比较适当;

#charset_type用来安数据编码(指定为utf-8);

#chinese_dictionary用来指定中文词典的绝地址;

#min_prefix_len和min_index_len用来指定最小前缀和极其小后缀,这个在后有详尽介绍;

#html_strip用来指定是否自动去丢所有html标签;

#enable_star

#preopen指定预先打开索引还是每次用索引的上打开,由于Sphinx的目是滚实现的,所以一定意义及立刻两边会发生冲突;

#disc=keywords

#于安排分布式索引的时刻,需要指定type=distributed,同时在差不多只local中指定索引源;

 

#每当indexer中,主要安装mem_limit,这个指定索引过程中的内存以范围,默认为32M;

#其他的而是设置项有max_iops,这个指定每秒最老之I/O次数,默认为0,无界定;

# max_iosize指定最特别I/O大小,指定I/O流最特别字节大小,默认为0,无界定;

除此以外还有write_buffer、max_xmlpipe2_field、max_file_field_buffer等设置;

 

#当searchd中,listen用来定义searchd守护进程监听的端口和IP;

#log指定searchd进程的运行日志地址;

#query_log指定搜索日志的位置;

#read_timeout指定读操作请求过时间;

#clien_timeout指定单次会话中,两不善询问之间最为丰富等时;

#max_childrent指定子进程的顶酷数额;

#persistent_connections_limit指定持续连接限制;

#pid_file指定是过程ID文件的门路;

#max_matches指定询问的极其深结果回到数,类似于SQL语句询问里面的limit;

#seamless_rotate指定是否要无缝切换,是的说话指定为1,做增量索引需要这种模式;

#preopen_indexs指定后台运行是是否先打开所有的目,是的口舌指定1;

#unlink_old指定是否释放旧索引,默认为1;

#mva_updates_pool 指定MVA更新池的深浅,默认1M;

#max_packet_size 指定最老允许网络保险大小,默认8M;

# max_filters指定每个查询允许最多之过滤器个数;

#max_batch_queries指定每个组最要命之查询数;

#另外还包一些关于线程的安;

 

#关于common;

 

 

 

 

 

#配置项morphology:

#词形处理器,举个栗子,在英文中,cats是cat的复数,所以片个单词实际上对同一个东西,所以词形处理器会将个别只单词当做一个单词来拍卖;

#唯恐是的题材,举个栗子,如果将gps当做gp来处理,自然是误的;

 

#配置项:sql_query_pre=SET SESSION query_cache_type=OFF:

#斯布局起重点为了设置缓存类型;

#query cache_type包括三只选项,0、1、2;

#0对许给面的OFF;

#1针对承诺被地方的ON;

#2对准诺为面的DEMAND;

#MySQL默认的为1,也即是默认开启缓存,除非在查询语句被指定sql_no_cache。但以此上即便指定了sql_no_cache也会见当缓存中询问,因为sql_no_cache只是不创新缓存,不代表不见面用过去底缓存;

#当指定为2之上,只有当通过query_cache指定缓存项时才见面缓存;

#当指定为0的时刻,会倒闭缓存;

 

#配置项sql_field_string:

#是路一般指定一个每当sql_query中的SQL指定的口舌中select的一个数据性;

#这数据性加了目录;

#因而安排起决定了是数额性可以全文检索,并且返回详细信息,非常关键;

 

#配置项sql_attr_string:

#本条布局起和sql_field_string的距离是是数额性不抱有索引;

 

#配置项sql_ranged_throttle:

#斯布局起好同布局起sql_range_step放在一起错过解(注意,没有d);

#即片独数据项实际上是控制分时搜索的;

#在异常数据检索的时节,我们赞成被把一个良丰富之表分为多独片去进行查询;

#推选个例子,假如说有八十万漫漫数据,我们每次搜寻十万修,然后把装有的询问结构取并集,就会获最终的结果集;

#其一里面,每次查询十万长长的,由sql_range_step指定,而达标单例中八潮询问的星星潮查询之间的日距离,就是由于sql_ranged_throttle确定的;

#为什么要开展分区查询也?这是盖数据库可能会见开展更新,这个时节恐怕得锁表等操作;

#题材:数据库更新的早晚需要暂停查找吗?和分布式查询比,这种解决方案是休是成效不好?

 

 

#配置项charset_table:

#是布局起是sphinx支持东亚语言搜索的显要配置起之一;

#东亚语言指的凡汉语、日语、朝鲜语,这些语言的性状是词汇中从来不语法标志(对比和英文的空格),所以分词系统为是这些语言查询的独特的处和关键技术;

#在布置是特性之时节应该加上http://sphinxsearch.com/wiki/doku.php?id=charset_tables这页面内对应之万事字段;

#夫布局起是易字符表,在面链接里复制东亚语言专用的字符转换表的时候记得改部分字符,比如箭头要转移成为->,这个网上介绍于多;

#盖这布局起的情过多,为了保全页面简洁推荐写成多行;

#动中文词典这无异桩非应当加上;

 

#配置项min_prefix_len:

#是项目相应MySQL一个于作索引前缀的法力,当然还有索引中缀和目录后缀的概念,原理同,这里只介绍索引前缀;

#所谓索引前缀,我个人认为当英文中因故处还怪,在汉语言中意思不深;

#前面缀索引,大概是不过针对数码的前头几乎只字符进行索引;

#以英文中,一个单词通过查询前几乎个假名就可知分别开,在我们应用电子词典的上,输入三四独字母一般还能配合到含义相同的词汇(差别可能就是词性);

#每当汉语言中,一个语汇最少只生一个配,两个字居多,最丰富四单字就是多,而这种情形下用索引前缀就不曾最好可怜意思;

#而,对于地方项,使用索引前缀也尚无意思,因为许多地方的分别是后的情节,想对而言,邮箱地址可能适合索引前缀;

#到底是否要采取索引前缀,这个要实际问题具体分析;

#言归正传,关于min_prefix_len,指定的是平种植原理类似之目方案;

#比如这布局起指定为3的时,lovely就见面生成lov、love、lovel、lovely对应之目项;

 

#配置项ngram_len:

#以开行中文分词的前提下,这个布局起的意思不要命;

#本条数目类前才支持0和1;

#每当树目录的时光,如果是布局起于装为乎1,那么每个会于配与字中间间距开,以这个吧根基创建索引;

#另外,这个布局起就见面指向ngram_chars中含的字符进行这样的分开,其他的没有界定;

 

#加以粗指的凡可能需要征或者涂改;

网站地图xml地图