|
鉴于最近观察到的论坛的搜索活动不断增加,以及疼逊嗖嗖的各种不给李,于是考虑到架设自己的搜索服务器。
初步的构想,额……对于我们这个级别的当然是想都不用想,俄罗斯大哥的神器Sphinx(Sphinx?!,表吃我!)。具体这个神器有多神,看看介绍:
高速索引 (在新款CPU上,近10 MB/秒);
高速搜索 (2-4G的文本量中平均查询速度不到0.1秒);
高可用性 (单CPU上最大可支持100 GB的文本,100M文档);
提供良好的相关性排名
支持分布式搜索;
提供文档摘要生成;
提供从MySQL内部的插件式存储引擎上搜索
支持布尔,短语, 和近义词查询;
支持每个文档多个全文检索域(默认最大32个);
支持每个文档多属性;
支持断词;
支持单字节编码与UTF-8编码;
牛X坏了有没有!在Server端的架设很容易,照着指南一步步走就成了,因为使用中文索引所以使用了Coreseek插件。当 变异 编译完成后第一次建立索引的时候真的是感觉的神器的神了,爱外联洋洋洒洒2.5万多帖子乱七八糟的内容,Sphinx几秒就索引好了(好吧,十几秒)…,在新款CPU上,近10 MB/秒这一条一点没有吹,在我们的服务器上索引速度完爆了10 MB/秒这个标称的速度。
不过接下来的问题是Discuz各种闹别扭有没有,疼逊嗖嗖关一下一堆问题,后台的键值拼写错误,而且一错错了N年了,就是不想改吧?这样Discuz就从Sphinx拿不到数据了。最恶心的一点,明明都说了搜索返回的默认值是10000,不填写就不是默认值?一样拿不到数据?所以,后台各个选项都要填写不要留空,别听什么默认值之类的鬼话。多亏Sphinx哥的自带记录才发现默认值留空竟然就是返回0条……。之后就简单了,设置增量索引就搞定了。
好了,希望大家能够反馈使用中遇到的问题。谢谢 |
|