一、SolrJ基础

1、相关资料

API:http://lucene.apache.org/solr/4_9_0/solr-solrj/

apache_solr_ref_guide_4.9.pdf:Client APIs---Using SolrJ

http://wiki.apache.org/solr/Solrj

solr in action:Using the SolrJ client library to add documents from Java, Using SolrJ from Java

2、

二、SolrJ用于索引

三、SolrJ用于搜索

  1. package org.jediael.ui;
  2.  
  3. import org.apache.solr.client.solrj.SolrQuery;
  4. import org.apache.solr.client.solrj.SolrServer;
  5. import org.apache.solr.client.solrj.impl.HttpSolrServer;
  6. import org.apache.solr.client.solrj.response.QueryResponse;
  7. import org.apache.solr.common.SolrDocument;
  8. import org.apache.solr.common.SolrDocumentList;
  9. import org.jediael.util.Constants;
  10.  
  11. public class ReturnResult {
  12.  
  13. public static void main(String[] args) throws Exception {
  14.  
  15. String serverUrl = (args != null && args.length > 0) ? args[0]
  16. : "http://" + Constants.IP + ":" + Constants.PORT
  17. + "/solr/collection1";
  18. SolrServer solrServer = new HttpSolrServer(serverUrl);
  19.  
  20. // 读取输入参数作为查询关键字,若无关键字,则查询全部内容。
  21. String queryString = (args != null && args.length > 1) ? args[1]
  22. : "*:*";
  23. SolrQuery solrQuery = new SolrQuery(queryString);
  24. // 定义使用哪个request
  25. // handler进行搜索,若无指定,则使用默认的handler.默认是/select。若solrConfig.xml中无/select这个searchHandler,则返回以下错误
  26. solrQuery.set("qt", "/search");
  27. // solrQuery.setRows(5);
  28. QueryResponse resp = solrServer.query(solrQuery);
  29.  
  30. SolrDocumentList hits = resp.getResults();
  31.  
  32. for (SolrDocument doc : hits) {
  33. for (String fieldName : doc.getFieldNames()) {
  34. System.out.println(fieldName + " : " + doc.getFieldValue(fieldName) + " ");
  35. }
  36. System.out.println("------------------------Next Document--------------------------------");
  37. }
  38.  
  39. }
  40. }

1、使用SolrJ进行搜索,基本步骤如下:

(1)创建一个SolrServer。

(2)创建一个SolrQuery,并使用set(String,String)进行参数的配置。

(3)调用SolrServer.query(solrQuery),返回QueryResponse。

(4)对QueryResponse进行分析处理。

2、以下语句用于指定使用哪个request handler进行搜索,若无指定,则使用默认的handler.默认是/select。若solrConfig.xml中无/select这个searchHandler,则返回以下错误

  1. <span style="font-family: Arial, Helvetica, sans-serif;">solrQuery.set("qt", "/search");</span>

HTTP Status 404 - /solr/collection1/select


type Status report

message /solr/collection1/select

description The requested resource is not available.


Apache Tomcat/7.0.54

版权声明:本文为博主原创文章,未经博主允许不得转载。

【Solr专题之九】SolrJ教程 分类: H4_SOLR/LUCENCE 2014-07-28 14:31 2351人阅读 评论(0) 收藏的更多相关文章

  1. Mahout快速入门教程 分类: B10_计算机基础 2015-03-07 16:20 508人阅读 评论(0) 收藏

    Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的优点就是基于hadoop实现,把很多以前运行于单 ...

  2. MS SQL数据批量备份还原(适用于MS SQL 2005+) 分类: SQL Server 数据库 2015-03-10 14:32 103人阅读 评论(0) 收藏

    我们知道通过Sql代理,可以实现数据库的定时备份功能:当数据库里的数据库很多时,备份一个数据库需要建立对应的定时作业,相对来说比较麻烦: 还好,微软自带的osql工具,比较实用,通过在命令行里里输入命 ...

  3. A Plug for UNIX 分类: POJ 图论 函数 2015-08-10 14:18 2人阅读 评论(0) 收藏

    A Plug for UNIX Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14786 Accepted: 4994 Desc ...

  4. RedHat Enterprise Linux 6.4使用Centos 6 的yum源 分类: 服务器搭建 Nginx 2015-07-14 14:11 5人阅读 评论(0) 收藏

    转载自:http://blog.sina.com.cn/s/blog_50f908410101cto6.html 思路:卸载redhat自带yum,然后下载centos的yum,安装后修改配置文件 1 ...

  5. 使用Broadcast实现android组件之间的通信 分类: android 学习笔记 2015-07-09 14:16 110人阅读 评论(0) 收藏

    android组件之间的通信有多种实现方式,Broadcast就是其中一种.在activity和fragment之间的通信,broadcast用的更多本文以一个activity为例. 效果如图: 布局 ...

  6. 使用JavaScriptSerializer序列化集合、字典、数组、DataTable为JSON字符串 分类: 前端 数据格式 JSON 2014-10-30 14:08 169人阅读 评论(0) 收藏

    一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大 ...

  7. vs2008 多人同时开发项目时的代码注释规范格式 分类: C#小技巧 2014-04-23 14:12 297人阅读 评论(0) 收藏

    多人同时开发一个项目,区分项目的那个窗体是谁开发的,例:下面的格式 /************************************************       模块:服务器设置   ...

  8. 代码对齐 分类: C#小技巧 2014-04-17 14:45 166人阅读 评论(0) 收藏

    开发项目时,为了是代码层次清晰.美观,常常需要调整多行,使之对齐.在网上也看到一些方法,感觉不好用,偶尔发现一个小技巧. (1)多行代码同时右移 同时选中几行,按"Tab"键,就会 ...

  9. mysql快速入门 分类: B6_MYSQL 2015-04-28 14:31 284人阅读 评论(0) 收藏

      debian方式: apt-get install mysql-server-5.5 mysql -u root -p   redhat安装方式 一.下载并解压 $ wget http://cdn ...

随机推荐

  1. 各种join一目了然: join 、inner join、left join 、right join、full join

    各种join一幅图一目了然 一下每幅图都是指: A * join B on A.id = B.in 这个帖子也非常形象.比較好:http://www.phpddt.com/db/inner_join- ...

  2. 从头认识java-15.7 Map(4)-介绍HashMap的工作原理-hash碰撞(常常作为面试题)

    这一章节我们来讨论一下hash碰撞. 1.什么是hash碰撞? 就是两个对象的key的hashcode是一样的,这个时候怎么get他的value呢? 答案是通过equals遍历table那个位置上面的 ...

  3. Android手机间使用socket进行文件互传实例

    这是一个Android手机间文件传输的例子,两个手机同时装上此app,然后输入接收端的ip,选择文件,可以多选,点确定,就发送到另一个手机,一个简单快捷文件快传实例.可以直接运用到项目中. 下面是文件 ...

  4. Native开发与JNI机制详解

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 文/李森 博主导读:博主不是代码大师,研究什么都很深,Java除外,所以无论什么问题,方案可以提供, ...

  5. 【Energy Forecasting】能源预測的发展和展望

    说明 本文的内容来自Tao Hong博士的Energy Forecasting: Past, Present and Future一文的翻译和整理. 引入 能源预測包括了电力行业中有关预測的广泛的内容 ...

  6. JdbcTemplate简单介绍

    转自:http://www.php.cn/java-article-368819.html 一.关于JdbcTemplate JdbcTemplate是最基本的Spring JDBC模板,这个模板支持 ...

  7. CSDN博客的文章分类和战略规划

    CSDN原创文章已经有300多篇了,现在已经整理了好多个分类目录了. 今天,特别向大家介绍下,每个分类的含义和规划. CSDN博客是我的一个重要的自媒体,也是我的一个战略实践. 我会精心维护这个博客, ...

  8. 各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况

    网络产品推广和新闻消息推送时,经常用到的工具就是用客户邮箱发送邮件了,如果是要发送的邮件量非常大的话,一般的建议是搭建自己的邮局服务器,或者是花钱购买专业的邮件群发服务,免费邮箱的SMTP适合少量的邮 ...

  9. 【算法导论-36】并查集(Disjoint Set)具体解释

    WiKi Disjoint是"不相交"的意思.Disjoint Set高效地支持集合的合并(Union)和集合内元素的查找(Find)两种操作,所以Disjoint Set中文翻译 ...

  10. Testin云測与ARM 战略合作:推动全球移动应用加速进入中国市场

    Testin云測与ARM 战略合作:推动全球移动应用加速进入中国市场 2014/10/14 · Testin · 业界资讯 (中国北京–2014年10月14日 )全球最大的移动游戏.应用真机和用户云測 ...