最近看完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了,再次感谢连接:
http://wenwen.sogou.com/z/q423004525.htm
除了导入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具体是怎么应用的,每一个部分都如何使用的摸索弄个搜索引擎的模样出来过过瘾。
友情赞助浏览器
若是你以为博主的文章对你那么一点小帮助,恰巧你又有想打赏博主的小冲动,那么事不宜迟,赶忙扫一扫,小额地赞助下,攒个奶粉钱,也是让博主有动力继续努力,写出更好的文章^^。tomcat
1. 支付宝 2. 微信服务器
