最近看完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具体是怎么应用的,每个部分都如何使用的摸索弄个搜索引擎的模样出来过过瘾。

友情赞助

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

    1. 支付宝                          2. 微信

                      

利用Solr服务建立的站内搜索雏形的更多相关文章

  1. 利用Solr服务建立的站内搜索雏形---solr1

    最近看完nutch后总感觉像好好捯饬下solr,上次看到老大给我展现了下站内搜索我便久久不能忘怀.总觉着之前搭建的nutch配上solr还是有点呆板,在nutch爬取的时候就建立索引到solr服务下, ...

  2. 在ssh中利用Solr服务建立的界面化站内搜索---solr2

         继上次匆匆搭建起结合solr和nutch的所谓站内搜索引擎之后,虽当时心中兴奋不已,可是看了看百度,再只能看看我的控制台的打印出每个索引项的几行文字,哦,好像差距还是有点大……        ...

  3. 在ssh中利用Solr服务建立的界面化站内搜索

         继上次匆匆搭建起结合solr和nutch的所谓站内搜索引擎之后,虽当时心中兴奋不已,可是看了看百度,再只能看看我的控制台的打印出每个索引项的几行文字,哦,好像差距还是有点大……      简 ...

  4. hexo干货系列:(五)hexo添加站内搜索

    前言 本来想用百度站内搜索,但是没成功,所以改用swiftype,用起来还是很棒的,这里分享一下我的安装步骤 正文 注册 去swiftype官网注册个账号,然后登陆,对了不要去在意30天试用,30天过 ...

  5. 一步步开发自己的博客 .NET版(5、Lucenne.Net 和 必应站内搜索)

    前言 这次开发的博客主要功能或特点:    第一:可以兼容各终端,特别是手机端.    第二:到时会用到大量html5,炫啊.    第三:导入博客园的精华文章,并做分类.(不要封我)    第四:做 ...

  6. 站内搜索——Lucene +盘古分词

    为了方便的学习站内搜索,下面我来演示一个MVC项目. 1.首先在项目中[添加引入]三个程序集和[Dict]文件夹,并新建一个[分词内容存放目录] Lucene.Net.dll.PanGu.dll.Pa ...

  7. 基于lucene.net 和ICTCLAS2014的站内搜索的实现1

    Lucene.net是一个搜索引擎的框架,它自身并不能实现搜索.须要我们自己在当中实现索引的建立,索引的查找.全部这些都是依据它自身提供的API来实现.Lucene.net本身是基于java的,可是经 ...

  8. Lucene.net站内搜索—5、搜索引擎第一版实现

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  9. 使用Lucene.NET实现简单的站内搜索

    使用Lucene.NET实现简单的站内搜索 导入Lucene.NET 开发包 Lucene 是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和 ...

随机推荐

  1. Android Handler面试解析

  2. 【Mysql sql inject】【入门篇】SQLi-Labs使用 part 2【12-14】

    这几关主要是考察POST形式的SQLi注入闭合 ## Less-12 - POST - Error Based- Double quotes- String ### 1)知识点 主要考察报错注入中的双 ...

  3. 递归与尾递归(C语言)【转】

    作者:archimedes 出处:http://www.cnblogs.com/archimedes/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原 ...

  4. C#实现图片叠加,图片上嵌入文字,文字生成图片的方法

    /// <summary>     /// 图片叠加     /// </summary>     /// <param name="sender"& ...

  5. 信息检索(IR)的评价指标介绍 - 准确率、召回率、F1、mAP、ROC、AUC

    原文地址:http://blog.csdn.net/pkueecser/article/details/8229166 在信息检索.分类体系中,有一系列的指标,搞清楚这些指标对于评价检索和分类性能非常 ...

  6. window系统下远程部署Tomcat

    远程访问windows系统,在windows系统上启动tomcat,发布项目.1.拨VPN2.远程桌面连接,cmd --> mstsc 回车,弹出远程桌面连接窗口 3.输入计算机IP:132.2 ...

  7. 基于url拦截

  8. Centos6安装FreeSWITCH 1.5时./configure问题解决记录

    系统:Centos 6.4 64位: FreeSWITCH版本:1.5 具体的安装过程参考FreeSWITCH 官网wiki (也可以参考我的博客<Centos6安装FreeSWITCH> ...

  9. python文件、文件夹操作OS模块

    转自:python文件.文件夹操作OS模块   '''一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前工作目录,即当前Python脚本工作的目录路径: ...

  10. bzoj 1060

    这题其实有点骗人... 通过观察很容易发现:考虑某一些叶节点的LCA,由于根节点到这个LCA的距离唯一,故要求这些叶节点到这一LCA的距离都相等 于是我们仅需dfs,找到次底层的节点,然后使这些节点的 ...