`
imjl
  • 浏览: 154392 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

说说sphinx和搜索一些思考

阅读更多
如果说得不对还请指正:

Sphinx是一个类似Lucene东东,同样没有爬虫部分。

源代码是c++写得,国内很多人一说到高效高速就想到c++,我也不会C++(为什么说也呢,因为我用lucene写过搜索,但不会java),但不耽误我看代码,代码写得很漂亮,有兴趣的可以读读,一齐交流交流。

索引部分是将内容分词按照指定格式存储。锁有两个,一个是文件锁,另一个是mlock。
排序算法和某书说得有类似,但有所不同。

搜索部分先将索引必要信息拉到内存,然后进行搜索一系列动作(过滤,排序等),最终找到对应的id数组,然后一个个的到数据库(现在支持mysql,pgsql)拿。(lucene的必要索引信息似乎比它大多了,从我们应用的角度来看,感觉可以缩减索引,有兴趣的可以到lucene的wiki上找pruning)

sphinx是通过一个叫searchd,感觉就是个daemon来提供对外服务,技术参考管道,进程

性能很强,中文分词支持目前比较稀缺,只有一两个开源的。

有时候我觉得分词随便哪个都行,只要能找到。快慢也一般,又不是做百度,google,只要不离谱也能承受。因为我觉得最关键还是搜索结果的排序,就是如何让更优的信息能排在最前面。

想从中文词语之间来分析相关性,我觉得还是歇歇把,理论和实践差得太远了。字典也许更可靠点,但这意味着中文分词要完全重写。
垂直搜索从业务角度来分析每条信息的重要性,这个还比较靠谱,问题是每行每业都有差别,很难统一,只能根据业务来定制。

分享到:
评论
3 楼 diddyrock 2010-02-03  
是指类似同义词搜索的那种吗
2 楼 diddyrock 2010-02-03  
还有就是你前面一个面试的帖子提到的中文相关性是啥意思啊?
1 楼 diddyrock 2010-02-03  
字典也许更可靠点,但这意味着中文分词要完全重写。 这句话是啥意思?为什么用了字典分词就要重新写?难道现有的sphinx中文分词实现是不基于字典的吗?

相关推荐

Global site tag (gtag.js) - Google Analytics