锁定老帖子 主题:30分钟搭建一个百万全文搜索
精华帖 (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是最新版本。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-11
比compass怎样?
|
|
返回顶楼 | |
发表时间:2008-03-11
我不知道compass。还是让用过这两者的xd告诉你差别把。
|
|
返回顶楼 | |
发表时间: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是最新版本。
|
|
返回顶楼 | |
发表时间:2008-03-12
恩,solr真是特别方便
|
|
返回顶楼 | |
发表时间:2008-03-12
主要是索引在什么时候创建?
是不是支持事务? 索引的修改是在什么时候, 我记得compass是在DAO操作数据库的时候干这些事情的 |
|
返回顶楼 | |
发表时间:2008-03-13
引用 fengzl 1 天前 主要是索引在什么时候创建? 是不是支持事务? 索引的修改是在什么时候, 我记得compass是在DAO操作数据库的时候干这些事情的 你什么时候做索引就什么时候创建索引。 不支持事务。 所有lucene的索引都遵循一个规则,没有什么修改概念,所谓的修改在lucene就是删掉旧的追加新的。 我不知道compass干嘛的,如果它是基于lucene,那么所谓包含事务,那我可以肯定的告诉你事务是在compass这层完成的,而不是在lucene这块完成。 我猜想数据操作流程:数据-》compass-》lucene,, |
|
返回顶楼 | |
发表时间:2008-03-16
Compass其实就是在Lucene外面包了一层持久化的壳
|
|
返回顶楼 | |
发表时间:2008-10-23
你好,我是按照步骤来部署的,不过是用的jeasy的分词,应该差不多了。
在analyze里已经可以分词了,但是在query的时候,还是没有分词, 比如索引里有“中文分词终于”这句,我查询“中文终于”的时候,在query中是没有分词,得不到结果 请问是哪里没有配置正确呢,谢了 |
|
返回顶楼 | |
浏览 11768 次