继上一篇在linux环境下搭建成功solr服务器之后,本篇讲述如何在java程序中对solr进行基本的API使用和操作,

启动solr服务器后,进入solr的可视化管控台

1、新建maven工程,创建过程略过,

pom文件添加依赖的jar包

2、接下来创建两个类,一个是person的对象类,封装了和配置文件中配置的业务字段相对应的字段的一个实体对象,
public class Person {

@Field(value = "id")
private String id;@Field(value = "name")
private String name;@Field(value = "description")
private String description;public String getId() {return id;
}public void setId(String id) {this.id = id;
}public String getName() {return name;
}public void setName(String name) {this.name = name;
}public String getDescription() {return description;
}public void setDescription(String description) {this.description = description;
}

}

接下来就是具体操作solr的代码,实际项目中可根据需要对操作solr的增删改查的方法做进一步的封装,新建SolrUtil工具类,

public class SolrUtil {

//solr服务器所在的地址,core0为自己创建的文档库目录
private final static String SOLR_URL = "http://192.168.111.130:8080/solr/core0";/*** 获取客户端的连接* * @return*/
public HttpSolrClient createSolrServer() {HttpSolrClient solr = null;solr = new HttpSolrClient.Builder(SOLR_URL).withConnectionTimeout(10000).withSocketTimeout(60000).build();return solr;
}/*** 往索引库添加文档* * @throws SolrServerException* @throws IOException*/
public void addDoc() throws SolrServerException, IOException {SolrInputDocument document = new SolrInputDocument();document.addField("id", "7");document.addField("name", "钢铁侠");document.addField("description", "一个逗比的码农");HttpSolrClient solr = new HttpSolrClient.Builder(SOLR_URL).withConnectionTimeout(10000).withSocketTimeout(60000).build();solr.add(document);solr.commit();solr.close();System.out.println("添加成功");
}/*** 根据ID从索引库删除文档* * @throws SolrServerException* @throws IOException*/
public void deleteDocumentById() throws SolrServerException, IOException {HttpSolrClient server = new HttpSolrClient.Builder(SOLR_URL).withConnectionTimeout(10000).withSocketTimeout(60000).build();server.deleteById("6");server.commit();server.close();
}/*** 根据设定的查询条件进行文档字段的查询* @throws Exception*/
public void querySolr() throws Exception {HttpSolrClient server = new HttpSolrClient.Builder(SOLR_URL).withConnectionTimeout(10000).withSocketTimeout(60000).build();SolrQuery query = new SolrQuery();//下面设置solr查询参数//query.set("q", "*:*");// 参数q  查询所有   query.set("q", "钢铁侠");//相关查询,比如某条数据某个字段含有周、星、驰三个字  将会查询出来 ,这个作用适用于联想查询//参数fq, 给query增加过滤查询条件 query.addFacetQuery("id:[0 TO 9]");query.addFilterQuery("description:一个逗比的码农"); //参数df,给query设置默认搜索域,从哪个字段上查找query.set("df", "name"); //参数sort,设置返回结果的排序规则query.setSort("id",SolrQuery.ORDER.desc);//设置分页参数query.setStart(0);query.setRows(10);//设置高亮显示以及结果的样式query.setHighlight(true);query.addHighlightField("name");  query.setHighlightSimplePre("<font color='red'>");  query.setHighlightSimplePost("</font>"); //执行查询QueryResponse response = server.query(query);//获取返回结果SolrDocumentList resultList = response.getResults();for(SolrDocument document: resultList){System.out.println("id:"+document.get("id")+"   document:"+document.get("name")+"    description:"+document.get("description"));}//获取实体对象形式List<Person> persons = response.getBeans(Person.class);System.out.println(persons.get(0).getName());}public static void main(String[] args) throws Exception {SolrUtil solr = new SolrUtil();//solr.addDoc();solr.querySolr();
}

}

接下来分别测试各个方法,向core0中添加一个文件,运行结果如下,

进入管控台,查看添加的数据;

可以看到刚刚的内容已经成功添加到solr服务器中了;

直接在代码中进行查询,看是否能够搜索到刚刚添加的信息,
如果按照设置的调价没有查到结果,会抛出下面异常,

如果设置正确,则显示结果如下,返回文档的信息,

或者进行模糊匹配,查询全部的结果:

最后测试一下删除的方法,

本篇到此结束,谢谢观看!

java操作solr基本方法相关推荐

  1. 使用Java操作文本文件的方法详解

    使用Java操作文本文件的方法详解 摘要: 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而 ...

  2. Java操作文件的方法大全

    标题 最新工作涉及到文件操作的内容,顺带花点时间把各种业务场景的方法都总结出来,供大家参考 对应Maven依赖.这块提醒千万别倒错包,这块的方法本人都亲测过,如果报错看下依赖是否正确 <depe ...

  3. mysql语句 java变量_Java操作Mysql的方法

    本文实例讲述了Java操作Mysql的方法.分享给大家供大家参考.具体分析如下: 不同于C#操纵数据库的千篇一律,如果是要Java把操纵数据库的语句分为两种: 一种是有结果的select语句,还有一种 ...

  4. java 操作office_Java操作word的方法

    使用Java操作word的方法有几个,我一一列出来:IText,Apache的POI包,tm-extractors包,jacob包,java2word包. IText包比较大,但是功能比较全.而且比较 ...

  5. solr获取同义词 java_java操作solr实现查询功能的实例

    一.封装的查询方法 /** * solr查询方法 * @param client solr客户端 * @param query solr查询对象 * @return list集合 * @throws ...

  6. Solr(二)-Solrj操作Solr

    一.Solrj实现索引库数据的更新 solrj的版本要和solr的版本对应. solrj是一款java操作solr的工具jar包. spring也可以很方便的整合solrj. @Test public ...

  7. java list 删除 遍历_Java list利用遍历进行删除操作3种方法解析

    Java list利用遍历进行删除操作3种方法解析 这篇文章主要介绍了Java list利用遍历进行删除操作3种方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需 ...

  8. 【JAVA多线程学习笔记】(1)实现线程的方式 线程生命周期 操作线程的方法

    文章目录 两种方式实现线程 继承Thread类 模拟银行叫号的程序 Runnable接口 代码1:(与swing相结合创建gui程序) Thread类的⼏个常⽤⽅法 线程生命周期 操作线程的方法 代码 ...

  9. java 反射创建对象并赋值_java使用反射创建并操作对象的方法

    Class 对象可以获得该类里的方法(由 Method 对象表示).构造器(由 Constructor 对象表示).成员变量(由 Field 对象表示),这三个类都位于 java.lang.refle ...

最新文章

  1. python安装虚拟环境virtualenv
  2. python培训班哪些比较好-学习Python去哪好?哪家Python培训机构比较靠谱
  3. postgresql 获取所有表名、字段名、字段类型、注释
  4. 蓝牙HCI剖析(二)
  5. AWS的EC2上构建一个爬虫
  6. 34/100. Top K Frequent Elements
  7. hadoop java访问_Hadoop(五)搭建Hadoop客户端与Java访问HDFS集群
  8. S-DES加密与解密
  9. java 字符串转成 json 数组并且遍历
  10. mysql update 批量修改数据_MySQL 中实现数据的批量修改
  11. 华为设备堆叠原理和配置
  12. zip知识点的部分总结!
  13. 全球货币市场基础知识系列4
  14. js html 测反应速度游戏,利用JS测试目标网站的打开响应速度
  15. 11-DNS域名解析服务
  16. ​NLP产业应用实战,评论观点抽取与分析和文本语义检索深度详解
  17. 拉钩招聘信息爬取以及可视化
  18. C. Colored Balls: Revisited codeforces 1728A
  19. 如何在TIA 博途中计算终端设备(例如水泵)的运行时间(附FB库文件)?
  20. JSON解析基础使用知识-Java

热门文章

  1. 项目分布式部署那些事(1):ONS消息队列、基于Redis的Session共享,开源共享
  2. iOS事件拦截(实现触摸任意位置隐藏指定view)
  3. Oracle在Linux上的预配置
  4. 26.如何实现关机时清空页面文件:
  5. linux很容易忽略的rz上传、sz下载命令
  6. CentOS 6.2 Eclipse CDT 开发环境搭建
  7. linux中 jdk 的卸载和安装[转]
  8. 【iOS-Cocos2d游戏开发之六】对触屏事件追加讲解,解决无法触发ccTouchMoved事件[重要!]...
  9. 黑客攻防技术宝典Web实战篇第2版—第2章核心防御机制
  10. 《Java线程池》:任务拒绝策略