java更新solr_Java solr 索引数据增删改查

importjava.io.IOException;import java.util.*;importorg.apache.solr.client.solrj.SolrClient;importorg.apache.solr.client.solrj.SolrQuery;importorg.apache.solr.client.solrj.SolrRequest;importorg.apache.solr.client.solrj.SolrServerException;importorg.apache.solr.client.solrj.impl.HttpSolrClient;importorg.apache.solr.client.solrj.response.QueryResponse;importorg.apache.solr.client.solrj.response.UpdateResponse;importorg.apache.solr.common.SolrDocument;importorg.apache.solr.common.SolrInputDocument;importjava.util.Set;importjava.util.List;/*** @Author:sks

* @Description:

* @Date:*/

public classsolrtest {public static void main(String []args) throwsSolrServerException, IOException{

String urlString= "http://localhost:8983/solr/data";

String id= "北京-报纸-电动车-资讯快报.pdf";

Init(urlString);//addIndex();

searchData();//Map maps = new HashMap();//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 staticSolrClient solr;/*** @Author:sks

* @Description:初始化solr客户端

* @Date:*/

public static voidInit(String urlString){

solr= newHttpSolrClient.Builder(urlString).build();

}/*** @Author:sks

* @Description:添加索引

* @Date:*/

public static void addIndex() throwsSolrServerException, IOException{

SolrInputDocument document= newSolrInputDocument();

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 maps ) throwsSolrServerException,IOException{

Set keys =maps.keySet();

SolrInputDocument doc= newSolrInputDocument();

doc.addField("id", id);for(String key : keys)

{

HashMap oper = new HashMap();

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) throwsSolrServerException,IOException{

HashMap oper = new HashMap();

oper.put("set", fieldValue);

SolrInputDocument doc= newSolrInputDocument();

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) throwsSolrServerException, 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() throwsSolrServerException,IOException {//使用这个对象做查询

SolrQuery params = newSolrQuery();//查询所有数据//params.setQuery("*:*");

params.setQuery("id:广州-杂志-汽车-电台资讯快报-2015年2月.docx");//分页,默认是分页从0开始,每页显示10行

params.setStart(0);

params.setRows(30);

QueryResponse queryResponse=solr.query(params);//拿到数据集合,返回查询结果

List 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());

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值