`
robbin
  • 浏览: 4842620 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
377a9ecd-1ea1-34ac-9530-9daa53bb2a7b
robbin谈管理
浏览量:138290
社区版块
存档分类
最新评论

JavaEye3.0开发手记之三 - 狮身人面

    博客分类:
  • Ruby
阅读更多
Sphinx的含义是“狮身人面像”,是古埃及的金字塔建筑,传说Sphinx是有翼的狮身女怪,她常叫过路行人猜谜, 猜不出者即遭杀害。

但是我这里说的Sphinx是一个高性能的搜索引擎:

http://www.sphinxsearch.com/

Sphinx是一个俄国人开发的搜索引擎,它的主要特点是:

一、性能非常出色
150万条记录一两分钟就索引完毕,2-4GB以内的文本检索速度不到0.1秒钟。ferret也望尘莫及,更不要说lucene了。

二、和数据库集成性很好
Sphinx通过配置文件可以自行读取数据库信息做索引,不依赖任何外部的应用程序,并且可以作为一个daemon进程启动,支持分布式检索,并发响应性能很好。因此很多过去使用ferret的人因为并发检索的问题都改用Sphinx了。

三、可以做MySQL的全文检索
MySQL的数据库引擎是可插拔的结构,Sphinx开发了一个SphinxSE数据库引擎,可以在编译MySQL的时候直接编译到MySQL里面去,这样的话,可以在数据库级别支持高性能的全文检索,那么你可以以如下SQL方式去全文检索了:

select * from xxxx where query='test;sort=attr_asc:group_id' AND ....;

很棒吧。


四、RoR支持也很棒
有一个acts_as_sphinx插件,类似acts_as_ferret,集成到RoR里面很简单。

Sphinx目前可能存在的问题估计还是中文分词问题:

Sphinx支持UTF-8编码的分词,但是他自己的文档上面说仅仅支持英文和俄文的分词,因此我估计对中文分词可能还不能很好的支持。

总之,Sphinx是我们另外一个很棒的选择。
分享到:
评论
10 楼 javsky 2007-09-12  
引用
150万条记录一两分钟就索引完毕,2-4GB以内的文本检索速度不到0.1秒钟
  好强啊,这么的搜索引擎,大家多研究研究。
9 楼 imjl 2007-09-12  
成熟应用就两个。。
8 楼 imjl 2007-09-12  
一: 版本数字还是0.××,,,也就是还没正式版。

二: 我看了下,还没比较好的中文分词(半年前我一朋友自己写了个,好像是基于sphi×,)

三: 分布式还不成熟

四: 很多企业特征无


期待robbin的“小白鼠”经验和心得,,,
7 楼 kris_xu 2007-09-11  
引用
Sphinx的含义是“狮身人面像”,是古埃及的金字塔建筑,传说Sphinx是有翼的狮身女怪,她常叫过路行人猜谜, 猜不出者即遭杀害。


看来老大用的是金山词霸啊。
6 楼 fyting 2007-09-11  
blowfisher 写道
"150万条记录一两分钟就索引完毕" ---太恐怖了 每秒能处理12500条? 回想Lucene才多少..

得看具体应用,一条记录可大可小的……索引速度还牵涉到分词、I/O、还有数据库与索引程序之间的通信吧。
ps:我觉得分词要自己写才好控制,可以加入很多应用相关的东西进去。
5 楼 crazycode 2007-09-11  
引用
select * from xxxx where query='test;sort=attr_asc:group_id' AND ....;

对呀,这个语法有点怪怪的,where子句应该是做约束的,这里还包括了sort,那order by怎么办?
4 楼 blowfisher 2007-09-11  
"150万条记录一两分钟就索引完毕" ---太恐怖了 每秒能处理12500条? 回想Lucene才多少..
3 楼 过河卒 2007-09-11  
引用
select * from xxxx where query='test;sort=attr_asc:group_id' AND ....;


这个sql,不常见,知道什么语法?解析一下
是安装插件后扩展的吗?
2 楼 flyinglife 2007-09-11  
俄国人?还是叫俄罗斯人比较好 哦
1 楼 thundercao 2007-09-10  
对中文分词支持如果和Ferret差不多也搞着能用

相关推荐

    JavaEye3.0开发手记

    ### JavaEye3.0开发手记之开发环境搭建详解 #### 一、开发环境搭建概述 随着JavaEye3.0开发计划的启动,本篇文章将详细介绍如何为该项目搭建高效的开发环境。开发过程中不仅需要考虑软件的选择,还需要针对操作...

    基于JavaEye-API实现的Gerry-聊天Dos版v1.0-lib库

    NULL 博文链接:https://ago520.iteye.com/blog/814571

    基于JavaEye-API实现的Gerry-聊天QQ版v1.0 (全)

    NULL 博文链接:https://ago520.iteye.com/blog/754087

    JavaEye论坛热点_-_2008年11月_-_总第6期

    【JavaEye论坛热点 - 2008年11月 - 总第6期】是2008年11月JavaEye论坛上讨论的热点话题汇总,包含了多个关于Java和软件开发领域的讨论主题。以下将对部分主题进行详细解释: 1. **领域模型的价值与困境** - 领域...

    JavaEye新闻月刊_-_2009年3月_-_总第13期

    JavaEye新闻月刊2009年3月第13期内容涉及了当时软件开发领域内的一系列重要话题,包括IBM拟收购Sun Microsystems公司的新闻报道、Java社区对此的看法以及各种编程语言、开发工具和技术的新动态。 首先,新闻月刊...

    javaEye论坛热点09年1月-09年10月

    9. **移动开发**:随着Android的崛起,Java在移动开发领域的应用也可能是热点话题之一。 10. **面试与职业发展**:Java程序员的面试技巧、职场经验分享、职业规划等内容,对于求职者和开发者都有参考价值。 通过...

    JavaEye论坛热点推荐_-_2009年09月_-_总第16期.pdf

    【JavaEye论坛热点推荐 - 2009年09月 - 总第16期】 这期JavaEye论坛的热点推荐涵盖了多个Java相关的技术话题,包括JDK7的新特性、HTTP缓存、Android开发、Java编程面试问题、Hibernate缓存、网页数据存储设计、热...

    Java学习网站---API手册下载---开发工具---项目源码---学习资料汇总

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。为了深入学习Java,了解并掌握其API(应用程序接口)以及使用高效的开发工具是至关重要的。下面,我们将详细探讨Java学习网站、API手册、...

    JavaEye第六期

    【JavaEye第六期】是2008年8月出版的一期专注于Java技术的电子书,其中涵盖了多个Java相关的技术和趋势。以下是对其中关键知识点的详细说明: 1. **Seam 2.1的新特性**:Seam是一个开源的Java EE框架,致力于简化...

    Jsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mht

    Jsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mhtJsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mht

    JavaEye论坛热点推荐_-_2009年3月_-_总第10期.pdf

    【JavaEye论坛热点推荐】2009年3月的第10期刊载了一系列与Java相关的热门话题,涉及了从编程技巧到框架分析,再到新兴技术的探讨。以下是本期推荐的一些核心知识点: 1. **Memcached源码分析(线程模型)**:文中提到...

    JavaEye博文JavaEye博文JavaEye博文

    "JavaEye博文" 本资源摘要信息来自JavaEye博文,作者cutesunshineriver,发布于2010年。...本资源摘要信息涵盖了软件开发、编程、项目管理等多方面的知识点,是软件开发和项目管理专业人士的必读之作。

    JavaEye论坛热点推荐_-_2009年10月_-_总第17期.pdf

    【JavaEye论坛热点推荐】2009年10月刊是针对Java编程和Java企业应用的一期精华内容,涵盖了Spring框架、JavaScript正则表达式、持续集成工具选择、性能优化等多个方面。以下是对其中一些重点知识的详细解读: 1. **...

    JavaEye新闻月刊 - 2009年2月 - 总第12期.pdf

    1. **Spring Framework 3.0 M2发布**:Spring Framework 3.0的M2预览版发布,引入了许多新特性,进一步强化了对Java 5的支持,同时在并发处理方面进行了扩展。这标志着Spring框架在功能和性能上的又一次提升,为...

    JavaEye+技术架构

    JavaEye+技术架构是针对Java开发领域的一种综合技术框架,旨在提高开发效率,优化系统性能,以及提升软件的可维护性和扩展性。该框架可能包含了多个层次和组件,以满足现代企业级应用的需求。以下是对JavaEye+技术...

    javaeye热点阅读

    JavaEye热点阅读是JavaEye论坛推出的2009年2月特辑,旨在为Java学习者和开发者提供最新的知识及行业动态。这份资料包含了多个Java相关的主题,包括但不限于并发编程、开源项目、设计模式、框架应用以及软件开发实践...

Global site tag (gtag.js) - Google Analytics