2008-03-10

30分钟搭建一个百万全文搜索

关键字: lucene solr

公司重心转移,不再是搜索。所以比较有空写写博。

 

solr是lucene的企业级扩展,很好很强大。solr的性能 http://wiki.apache.org/solr/SolrPerformanceData, 现在使用solr的网站 http://wiki.apache.org/solr/PublicServers

 

我习惯使用tomcat,安装参考:http://wiki.apache.org/solr/SolrTomcat,当然你也可以使用其他Contains来安装。(现在的wiki真详细,以前都靠自己摸索) 如果安装成功,浏览器地址栏输入: http://localhost:8080/solr/admin/, 看到管理界面,那么继续。

 

找个支持lucene的中文analyzer,,比如lucene自带的cjk,修改solr的schema.xml中的 field,比如德国的(记得把注释去掉) 你可以参考修改成 然后在搜索filed,改成自己的field,比如全文检索简单的是id, title, body 比如我将原来的 修改成 保存好,重新启动tomcat,输入 http://localhost:8080/solr/admin/analysis.jsp?name=title&verbose=on&highlight=on&val=aa&qval= 如果一切正常,那么你就能看到title给cjk分词的处理效果。

 

使用solr非常简单,从数据库取出数据, 包个含程序字段有id, title, body的xml扔给solr做索引。参考:http://wiki.apache.org/solr/UpdateXmlMessages。除了xml还有csv格式数据做索引,参考:http://wiki.apache.org/solr/UpdateCSV 索引完了,我们用用看。

 

比如我要搜索关键词:测试中文,搜索字段是title,跑到地址栏输入 http://localhost:8080/solr/select?indent=on&version=2.2&q=%E6%B5%8B%E8%AF%95%E4%B8%AD%E6%96%87&start=0&rows=10&fl=*%2Cscore&qt=title&wt=standard&explainOther=&hl.fl= 根据自己情况输入关键词和字段,如果得到你要的结果,那么恭喜你,你能搭建一个百万搜索了。

 

百万搜索真的这么简单么?没啦,不同业务不一样,复杂的很复杂。

 

大家看下教程 http://lucene.apache.org/solr/tutorial.html,wiki: http://wiki.apache.org/solr solr

 

现在的release版本是1.2, 1.3还在开发中,现在还有少量bug还没解决,估计快要release了,如果不急于production的,先用1.2熟悉,用1.3上production。如果大家急着用solr的svn版本,其lucene是最新版本。

 

 

评论
jfxia 2008-03-16
Compass其实就是在Lucene外面包了一层持久化的壳
imjl 2008-03-13
引用

fengzl 1 天前
主要是索引在什么时候创建?
是不是支持事务?
索引的修改是在什么时候,
我记得compass是在DAO操作数据库的时候干这些事情的


你什么时候做索引就什么时候创建索引。
不支持事务。
所有lucene的索引都遵循一个规则,没有什么修改概念,所谓的修改在lucene就是删掉旧的追加新的。

我不知道compass干嘛的,如果它是基于lucene,那么所谓包含事务,那我可以肯定的告诉你事务是在compass这层完成的,而不是在lucene这块完成。

我猜想数据操作流程:数据-》compass-》lucene,,
fengzl 2008-03-12
主要是索引在什么时候创建?
是不是支持事务?
索引的修改是在什么时候,
我记得compass是在DAO操作数据库的时候干这些事情的
chenjinlai 2008-03-12
恩,solr真是特别方便
wangfengmadking 2008-03-12
imjl 写道

公司重心转移,不再是搜索。所以比较有空写写博。

 

solr是lucene的企业级扩展,很好很强大。solr的性能 http://wiki.apache.org/solr/SolrPerformanceData, 现在使用solr的网站 http://wiki.apache.org/solr/PublicServers

 

我习惯使用tomcat,安装参考:http://wiki.apache.org/solr/SolrTomcat,当然你也可以使用其他Contains来安装。(现在的wiki真详细,以前都靠自己摸索) 如果安装成功,浏览器地址栏输入: http://localhost:8080/solr/admin/, 看到管理界面,那么继续。

 

找个支持lucene的中文analyzer,,比如lucene自带的cjk,修改solr的schema.xml中的 field,比如德国的(记得把注释去掉) 你可以参考修改成 然后在搜索filed,改成自己的field,比如全文检索简单的是id, title, body 比如我将原来的 修改成 保存好,重新启动tomcat,输入 http://localhost:8080/solr/admin/analysis.jsp?name=title&verbose=on&highlight=on&val=aa&qval= 如果一切正常,那么你就能看到title给cjk分词的处理效果。

 

使用solr非常简单,从数据库取出数据, 包个含程序字段有id, title, body的xml扔给solr做索引。参考:http://wiki.apache.org/solr/UpdateXmlMessages。除了xml还有csv格式数据做索引,参考:http://wiki.apache.org/solr/UpdateCSV 索引完了,我们用用看。

 

比如我要搜索关键词:测试中文,搜索字段是title,跑到地址栏输入 http://localhost:8080/solr/select?indent=on&version=2.2&q=%E6%B5%8B%E8%AF%95%E4%B8%AD%E6%96%87&start=0&rows=10&fl=*%2Cscore&qt=title&wt=standard&explainOther=&hl.fl= 根据自己情况输入关键词和字段,如果得到你要的结果,那么恭喜你,你能搭建一个百万搜索了。

 

百万搜索真的这么简单么?没啦,不同业务不一样,复杂的很复杂。

 

大家看下教程 http://lucene.apache.org/solr/tutorial.html,wiki: http://wiki.apache.org/solr solr

 

现在的release版本是1.2, 1.3还在开发中,现在还有少量bug还没解决,估计快要release了,如果不急于production的,先用1.2熟悉,用1.3上production。如果大家急着用solr的svn版本,其lucene是最新版本。

 

 

imjl 2008-03-11
我不知道compass。还是让用过这两者的xd告诉你差别把。
pango 2008-03-11
比compass怎样?
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

imjl
搜索本博客
博客分类
我的相册
4ae9948d-bac9-4e81-8351-d05c0182de1b-thumb
robot
共 1 张
存档
最新评论