Java solr 索引数据增删改查
具体代码如下:
import java.io.IOException;
import java.util.*; import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrInputDocument;
import java.util.Set;
import java.util.List; /**
* @Author:sks
* @Description:
* @Date:
*/
public class solrtest { public static void main(String []args) throws SolrServerException, IOException{ String urlString = "http://localhost:8983/solr/data";
String id = "北京-报纸-电动车-资讯快报.pdf";
Init(urlString);
// addIndex();
searchData();
// Map<String, String> maps = new HashMap<String, String>();
// maps.put("author","小王");
// maps.put("profession","汽车");
// maps.put("district","北京");
// maps.put("mediatype","报纸");
// updateMultiData(id,maps);
//
//
// String fieldName = "author";
// Object fieldValue = "小张";
// updateSingleData(id,fieldName,fieldValue);
//
// delIndexByID(id); } private static SolrClient solr; /**
* @Author:sks
* @Description:初始化solr客户端
* @Date:
*/
public static void Init(String urlString){ solr = new HttpSolrClient.Builder(urlString).build();
} /**
* @Author:sks
* @Description:添加索引
* @Date:
*/
public static void addIndex() throws SolrServerException, IOException{ SolrInputDocument document = new SolrInputDocument();
document.addField("id", "9527");
document.addField("name", "啦啦");
document.addField("content", "solr是个好东西");
solr.add(document);
solr.commit();
} /**
* @Author:sks
* @Description:更新索引中多个属性数据
* @Date:
* @id:索引ID
* @maps:属性名称,属性值键值对
*/
public static void updateMultiData(String id,Map<String, String> maps ) throws SolrServerException,IOException{ Set<String> keys = maps.keySet();
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", id);
for(String key : keys)
{
HashMap<String, Object> oper = new HashMap<String, Object>();
oper.put("set", maps.get(key));
doc.addField(key, oper);
} UpdateResponse rsp = solr.add(doc);
System.out.println("update doc id:" + id + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime());
UpdateResponse rspCommit = solr.commit();
System.out.println("commit doc to index" + " result:" + rspCommit.getStatus() + " Qtime:" + rspCommit.getQTime()); } /**
* @Author:sks
* @Description:更新索引中单个属性数据
* @Date:
* @id:索引ID
* @fieldName:属性名称
* @fieldValue:属性值
*/
public static void updateSingleData(String id,String fieldName,Object fieldValue) throws SolrServerException,IOException{ HashMap<String, Object> oper = new HashMap<String, Object>();
oper.put("set", fieldValue);
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", id);
doc.addField(fieldName, oper);
UpdateResponse rsp = solr.add(doc);
System.out.println("update doc id:" + id + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime());
UpdateResponse rspCommit = solr.commit();
System.out.println("commit doc to index" + " result:" + rspCommit.getStatus() + " Qtime:" + rspCommit.getQTime()); } /**
* @Author:sks
* @Description:删除指定ID的索引
* @Date:
* @id:索引ID
*/
public static void delIndexByID(String id) throws SolrServerException, IOException{ UpdateResponse ur = solr.deleteById(id);
System.out.println(ur); UpdateResponse c = solr.commit();
System.out.println(c); } /**
* @Author:sks
* @Description:查询数据
* @Date:
*/
public static void searchData() throws SolrServerException,IOException {
//使用这个对象做查询
SolrQuery params = new SolrQuery();
//查询所有数据
// params.setQuery("*:*");
params.setQuery("id:广州-杂志-汽车-电台资讯快报-2015年2月.docx");
//分页,默认是分页从0开始,每页显示10行
params.setStart(0);
params.setRows(30); QueryResponse queryResponse = solr.query(params);
//拿到数据集合,返回查询结果
List<SolrDocument> list = queryResponse.getResults(); //循环打印数据集合
for (SolrDocument solrDocument : list) {
Object id = solrDocument.get("id");
System.out.println(id.toString()); Object fileSize = solrDocument.get("fileSize");
System.out.println(fileSize.toString()); Object fileLastModified = solrDocument.get("fileLastModified");
System.out.println(fileLastModified.toString()); Object fileAbsolutePath = solrDocument.get("fileAbsolutePath");
System.out.println(fileAbsolutePath.toString()); Object author = solrDocument.get("author");
System.out.println(author.toString()); // Object text = solrDocument.get("text");
// System.out.println(text.toString());
Object title = solrDocument.get("title");
System.out.println(title.toString()); Object author_area_keywor = solrDocument.get("author_area_keyword");
System.out.println(author_area_keywor.toString()); }
} }
Java solr 索引数据增删改查的更多相关文章
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- Java实现mongodb原生增删改查语句
Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...
- 完成在本机远程连接HBase进行数据增删改查
1.进行hbase与本机远程连接测试连接 1.1 修改虚拟机文件hbase-site.xml(cd/usr/local/hbase/conf)文件,把localhost换成你的虚拟机主机名字 1.2修 ...
- salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建
VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的标签相对简单,如果需要深入了解VF相关知识以及标签, 可以通过以下链接查看或下载 ...
- C#操作Excel数据增删改查(转)
C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateT ...
- C#操作Excel数据增删改查示例
Excel数据增删改查我们可以使用c#进行操作,首先创建ExcelDB.xlsx文件,并添加两张工作表,接下按照下面的操作步骤即可 C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文 ...
- 【转载】salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建
salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建 VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的 ...
- Java连接MongoDB进行增删改查
1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...
- elasticsearch索引的增删改查入门
为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/<index>/&l ...
随机推荐
- wxpython布局管理部件wx.gridbagsizer用法示例
text = ("This is text box") panel = wx.Panel(self, -1) chkAll1 = wx.CheckB ...
- Linux调试介绍
1. 介绍 本文介绍了调试的一些常用函数和工具 2. 函数 用户态函数: backtrace()/backtrace_symbols() 内核态函数: dump_stack() 3. 工具 工具: g ...
- linux设备驱动中的并发控制【转】
转自:http://www.cnblogs.com/plinx/archive/2013/01/28/2873121.html 在linux内核中,主要的静态发生于以下几种情况: 1.对称多处理器(S ...
- mac air 装ubuntu16.04
前言 我的mac air购于14年,128GB款.最开始我只是在OS X系统里留出了70GB给ubuntu,然后通过u盘装了ubuntu 14.04,后来又陆续将系统升级到15.04.16.04.各方 ...
- python memcache 常用操作
add() 添加一条键值对,如果key已存在,重复执行add操作会报异常 mc.add('name2', 'lisi') print(mc.get('name2')) # lisi replace 修 ...
- 写了一个迷你toast提示插件,支持自定义提示文字和显示时间
写了一个迷你toast提示插件,支持自定义提示文字和显示时间,不想用其他第三方的ui插件,又想要toast等小效果来完善交互的同学可以试试, 代码中还贡献了一段css能力检测js工具函数,做项目的时候 ...
- python的加密算法(1):反转加密
说白了,就是把字符串倒序. 在js里,有一个reverse.但是python中没有. 不过,有一个更简单的方法,就是: ‘abcd’ [::-1] 这里,具体解释一下: (参看:https://doc ...
- 第一篇:动态防火墙firewalld和静态防火墙iptables
动态防火墙firewalld firewalld提供了一个动态管理的防火墙,它支持网络(network)/防火墙区域(firewall zones )来定义网络连接( network connecti ...
- springboot 返回json格式数据的时间格式配置
#时间戳统一转换 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 NOTE:time-zon ...
- [BZOJ2648] SJY摆棋子 kd-tree
2648: SJY摆棋子 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 5421 Solved: 1910[Submit][Status][Disc ...