博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用Solr服务建立的站内搜索雏形
阅读量:5216 次
发布时间:2019-06-14

本文共 2207 字,大约阅读时间需要 7 分钟。

最近看完nutch后总感觉像好好捯饬下solr,上次看到老大给我展现了下站内搜索我便久久不能忘怀。总觉着之前搭建的nutch配上solr还是有点呆板,在nutch爬取的时候就建立索引到solr服务下,然后在solr的管理界面中选择query,比如在q选项框中将“*:*”改写为“title:安徽”,则在管理界面中就能看到搜索结果,可是这个与搜索引擎的感觉差远了,总感觉这些结果是被solr给套在他的管理界面中了,于是自己在网上搜索,也想整个站内搜索一样的东西,就算整不到那么炫,只要整到在solr的管理界面以外的地方出现搜索结果我就心满意足了……
网上海搜一番,发现有人做站内搜索的,但是也只是只言片语,没有很全的(后来发现及时很全的也不一定适用于你,因为搞IT的都具有时效性,谁知道你当前看到的一个类是不是n年前就被标记为过时了不能用了),但是也没办法,多看看结合一下,于是自己开始动手拼接组装程序了:
1.在程序中(我的环境是在Myeclipse中)要能够与solr服务器通信,毕竟你的索引是存在solr中的,然后就是加入搜索条件和要搜索的字段,再者就是一个查询类以及最后的结果的呈现,依次用到的是CommonsHttpSolrServer、SolrQuery、QueryResponse。
2.可是在组装好代码后运行是总是报错,也没有找到针对性的解决方案,但是调试的过程中把查询的条件取出来放到浏览器中查询是可以的,就是卡在QueryResponse qrsp = server.query(query); 这行,琢磨着应该是要换个纯净的工程,于是新建了个新的工程,按照网上要求的jar给导入,可是后来发现CommonsHttpSolrServer类总是无法导包,进入一看solrj的jar包下确实没有这个类,所以针对性的在网上搜索后发现该类在solr3.6版本后就被抛弃了,改用HttpSolrServer了,再次感谢链接:
除了导入solr-solrj-4.6.0.jar以外还导入了以下jar包,这些jar都来源于自己下载的\solr-4.4.0\solr-4.4.0\dist\solrj-lib目录下的所有jar包
3.有了jar包之后,就开始运行程序了,我的solr是装在虚拟机里面,所以还要先到虚拟机中把tomcat服务启动(我的solr服务已经部署到tomcat服务器下了),然后在win7系统的浏览器中输入http://ip:8080/solr就可以访问我虚拟机里的solr了,大体主体部分如下:
String url="http://ip:8080/solr/";
HttpSolrServer server = new HttpSolrServer(url); 
server.setSoTimeout(3000); // socket read timeout 
server.setConnectionTimeout(1000); 
server.setDefaultMaxConnectionsPerHost(1000); 
server.setMaxTotalConnections(10); 
server.setFollowRedirects(false); // defaults to false 
server.setAllowCompression(true); 
server.setMaxRetries(1);
注意以上的ip为自己的ip,我的端口是8080,因为用的tomcat服务器,如果你没有部署到tomcat下,直接启动solr的example下的服务应该是8389,上面主要是与solr服务通信以及一些参数的设置;
SolrQuery query = new SolrQuery(); 
query.setQuery("title:安徽"); 
query.addField("content");
query.setStart(0); 
query.setRows(15);
上面的这些代码是生命一个查询类,并赋给查询条件以及查询字段
QueryResponse qrsp = server.query(query); 
SolrDocumentList docs = qrsp.getResults(); 
Iterator it = docs.iterator(); 
while (it.hasNext()) { 
System.out.println(it.next()); 
}
这段代码是接收相应的搜索结果以及遍历显示打印搜索结果。
虽然以上算不得什么搜索引擎,也没有任何界面的显示,但是我已很欣慰,因为都已经能搜索了,离我的小百度还远么(开玩笑的^_^)下一步准备先看看solrj具体是怎么应用的,每个部分都如何使用的摸索弄个搜索引擎的模样出来过过瘾。

友情赞助

如果你觉得博主的文章对你那么一点小帮助,恰巧你又有想打赏博主的小冲动,那么事不宜迟,赶紧扫一扫,小额地赞助下,攒个奶粉钱,也是让博主有动力继续努力,写出更好的文章^^。

    1. 支付宝                          2. 微信

                      

转载于:https://www.cnblogs.com/yujihaia/p/7468304.html

你可能感兴趣的文章
P2571 [SCOI2010]传送带
查看>>
哈希表1
查看>>
用Data Url (data:image/jpg;base64,)将小图片生成数据流形式
查看>>
实验2-2
查看>>
C#初识
查看>>
String,StringBuffer与StringBuilder的区别?? .
查看>>
JavaScript(三) 数据类型
查看>>
移动端rem布局屏幕适配插件(放js中便可使用)
查看>>
Docker
查看>>
bzoj2259 [Oibh]新型计算机
查看>>
对位与字节的深度认识
查看>>
C++编程基础二 16-习题4
查看>>
MongoDB遇到的疑似数据丢失的问题。不要用InsertMany!
查看>>
服务器被疑似挖矿程序植入107.174.47.156,发现以及解决过程(建议所有使用sonatype/nexus3镜像的用户清查一下)...
查看>>
JQuery 学习
查看>>
session token两种登陆方式
查看>>
C# ArrayList
查看>>
IntelliJ IDEA 12集成Tomcat 运行Web项目
查看>>
java,多线程实现
查看>>
个人作业4-alpha阶段个人总结
查看>>