具体代码如下:

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 索引数据增删改查的更多相关文章

  1. Java连接MySQL数据库增删改查通用方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...

  2. Java实现mongodb原生增删改查语句

    Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...

  3. 完成在本机远程连接HBase进行数据增删改查

    1.进行hbase与本机远程连接测试连接 1.1 修改虚拟机文件hbase-site.xml(cd/usr/local/hbase/conf)文件,把localhost换成你的虚拟机主机名字 1.2修 ...

  4. salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建

    VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的标签相对简单,如果需要深入了解VF相关知识以及标签, 可以通过以下链接查看或下载 ...

  5. C#操作Excel数据增删改查(转)

    C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateT ...

  6. C#操作Excel数据增删改查示例

    Excel数据增删改查我们可以使用c#进行操作,首先创建ExcelDB.xlsx文件,并添加两张工作表,接下按照下面的操作步骤即可 C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文 ...

  7. 【转载】salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建

    salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建   VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的 ...

  8. Java连接MongoDB进行增删改查

    1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...

  9. elasticsearch索引的增删改查入门

    为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/<index>/&l ...

随机推荐

  1. VC++/MFC中调用CHM帮助文档的方法

    转载:http://blog.csdn.net/hediping9811/article/details/23341387 (1)用Word编辑好帮助文档,并保存为网页格式,如mhtml格式. (2) ...

  2. PL/SQL Developer 连接 Oracle

    1.从官网http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html  选择instant ...

  3. 【python】抄写大神的百度贴吧代码

    原文链接:http://cuiqingcai.com/993.html 划重点: 1.提取帖子内容时,对图片,贴吧自动增加的超链接,制表符,换行符要做删除或替换处理 2.decode是把bytes转换 ...

  4. python接口自动化11-post传data参数案例【转载】

    前言: 前面登录博客园的是传json参数,有些登录不是传json的,如jenkins的登录,本篇以jenkins登录为案例,传data参数. 一.登录jenkins抓包 1.登录jenkins,输入账 ...

  5. 阿里云linux下修改mysql默认密码(xampp环境)- 原创

    1.修改MySQL的登录设置: # vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 例如: [mysqld] datadir=/var/lib/my ...

  6. 虚拟机Visualbox安装Ubuntu Server

    关于虚拟机的新建及设置,请查看<Visualbox安装Ubuntu网络设置> 从光盘启动系统中,首先是选择语言,我这里选择英文 选择英文安装Ubuntu服务器 继续选择英文 选择地理位置, ...

  7. centos 命令行修改主机名

    # vi /etc/sysconfig/network # 把localhost.localdomain 修改为 localhost.com # 保存退出 # vi /etc/hosts # 把loc ...

  8. js跳转整理(简记)

    location.replace(URL)跳转脱离历史记录流: location.href=url;在历史记录中 子刷新父级 parent.location.replace(parent.locati ...

  9. eclipse中的aptana插件的安装

    先下载 aptana插件包   我安装的eclipse版本是 indido版本号的. 三步骤: 1.将aptana解压到eclipse的目录下 2.打开eclipse目录下的dropins文件,新建一 ...

  10. 51nod 1344 走格子【贪心/前缀和】

    1344 走格子 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格 ...