论坛首页 Java企业应用论坛

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

浏览 11753 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-03-10  

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

 

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是最新版本。

 

 

   发表时间:2008-03-11  
比compass怎样?
0 请登录后投票
   发表时间:2008-03-11  
我不知道compass。还是让用过这两者的xd告诉你差别把。
0 请登录后投票
   发表时间: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是最新版本。

 

 

0 请登录后投票
   发表时间:2008-03-12  
恩,solr真是特别方便
0 请登录后投票
   发表时间:2008-03-12  
主要是索引在什么时候创建?
是不是支持事务?
索引的修改是在什么时候,
我记得compass是在DAO操作数据库的时候干这些事情的
0 请登录后投票
   发表时间:2008-03-13  
引用

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


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

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

我猜想数据操作流程:数据-》compass-》lucene,,


0 请登录后投票
   发表时间:2008-03-16  
Compass其实就是在Lucene外面包了一层持久化的壳
0 请登录后投票
   发表时间:2008-10-23  
你好,我是按照步骤来部署的,不过是用的jeasy的分词,应该差不多了。
在analyze里已经可以分词了,但是在query的时候,还是没有分词,

比如索引里有“中文分词终于”这句,我查询“中文终于”的时候,在query中是没有分词,得不到结果
请问是哪里没有配置正确呢,谢了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics