博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Solr6.0中solrj使用简单例子
阅读量:6976 次
发布时间:2019-06-27

本文共 7544 字,大约阅读时间需要 25 分钟。

solr6.0的solrJ接口有部分变化,下面列出了简单的使用实例,有需要的朋友可以参考下。

package com.ailk.solr6;import java.io.IOException;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.List;import java.util.UUID;//import org.apache.log4j.Logger;//import org.apache.log4j.PropertyConfigurator;import org.apache.solr.client.solrj.SolrClient;import org.apache.solr.client.solrj.SolrQuery;import org.apache.solr.client.solrj.SolrServerException;import org.apache.solr.client.solrj.impl.CloudSolrClient;import org.apache.solr.client.solrj.impl.HttpSolrClient;import org.apache.solr.client.solrj.request.UpdateRequest;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.SolrDocumentList;import org.apache.solr.common.SolrInputDocument;public class SimpleSorl {    private String solrUrl;    private SolrClient client;    private int num = 10;    private String zkUrl;    private String collectionName;    private SolrClient createNewSolrClient() {        try {            System.out.println("server address:" + solrUrl);            HttpSolrClient client = new HttpSolrClient(solrUrl);            client.setConnectionTimeout(30000);            client.setDefaultMaxConnectionsPerHost(100);            client.setMaxTotalConnections(100);            client.setSoTimeout(30000);            return client;        } catch (Exception ex) {            throw new RuntimeException(ex);        }    }    private SolrClient createCouldSolrClient() {        CloudSolrClient client = new CloudSolrClient(zkUrl);        client.setZkClientTimeout(30000);        client.setZkConnectTimeout(50000);        client.setDefaultCollection(collectionName);        return client;    }    public void close() {        try {            client.close();        } catch (IOException e) {            e.printStackTrace();        }    }    public SimpleSorl(String solrUrl, int num) {        this.solrUrl = solrUrl;        this.client = createNewSolrClient();        this.num = num;    }    public SimpleSorl(String zkUrl, int num, String collection) {        this.zkUrl = zkUrl;        this.num = num;        collectionName = collection;        this.client = createCouldSolrClient();    }    public void createDocs() {        System.out.println("======================add doc ===================");        Collection
docs = new ArrayList
(); for (int i = 1; i <= num; i++) { SolrInputDocument doc1 = new SolrInputDocument(); doc1.addField("id", UUID.randomUUID().toString(), 1.0f); doc1.addField("name", "bean"); doc1.addField("equIP_s", "192.168.2.104"); doc1.addField("level_s", "4"); doc1.addField("collectPro_s", "ffffffffffffffffffffjajajajajajdddddddddd"); doc1.addField("sourceType_s", "miaohqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); doc1.addField("filePath_s", "/home/xxxx/test"); doc1.addField("filename_s", "zhonggggmaiaiadadadddddddddddddddddddddddddd");// doc1.addField("_route_", "shard1"); docs.add(doc1); } try { UpdateResponse rsp = client.add(docs); System.out .println("Add doc size" + docs.size() + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime()); UpdateResponse rspcommit = client.commit(); System.out.println("commit doc to index" + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime()); } catch (SolrServerException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void queryDocs() { SolrQuery params = new SolrQuery(); System.out.println("======================query==================="); params.set("q", "addparam_s:*"); params.set("start", 0); params.set("rows", 5); params.set("sort", "accesstime_s desc"); try { QueryResponse rsp = client.query(params); SolrDocumentList docs = rsp.getResults(); System.out.println("查询内容:" + params); System.out.println("文档数量:" + docs.getNumFound()); System.out.println("查询花费时间:" + rsp.getQTime()); System.out.println("------query data:------"); for (SolrDocument doc : docs) { // 多值查询 @SuppressWarnings("unchecked") List
collectTime = (List
) doc.getFieldValue("collectTime"); String clientmac_s = (String) doc.getFieldValue("clientmac_s"); System.out.println("collectTime:" + collectTime + "\t clientmac_s:" + clientmac_s); } System.out.println("-----------------------"); } catch (Exception e) { e.printStackTrace(); } } public void deleteById(String id) { System.out.println("======================deleteById ==================="); try { UpdateResponse rsp = client.deleteById(id); client.commit(); System.out.println("delete id:" + id + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime()); } catch (SolrServerException | IOException e) { e.printStackTrace(); } } public void deleteByQuery(String queryCon) { System.out.println("======================deleteByQuery ==================="); UpdateResponse rsp; try { UpdateRequest commit = new UpdateRequest(); commit.deleteByQuery(queryCon); commit.setCommitWithin(5000); commit.process(client); System.out.println("url:"+commit.getPath()+"\t xml:"+commit.getXML()+" method:"+commit.getMethod());// rsp = client.deleteByQuery(queryCon);// client.commit();// System.out.println("delete query:" + queryCon + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime()); } catch (SolrServerException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void updateField(String id,String fieldName, Object fieldValue) { System.out.println("======================updateField ==================="); HashMap
oper = new HashMap
();// 多值更新方法// List
mulitValues = new ArrayList
();// mulitValues.add(fieldName);// mulitValues.add((String)fieldValue); oper.put("set", fieldValue); SolrInputDocument doc = new SolrInputDocument(); doc.addField("id", id); doc.addField(fieldName, oper); try { UpdateResponse rsp = client.add(doc); System.out.println("update doc id" + id + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime()); UpdateResponse rspCommit = client.commit(); System.out.println("commit doc to index" + " result:" + rspCommit.getStatus() + " Qtime:" + rspCommit.getQTime()); } catch (SolrServerException | IOException e) { e.printStackTrace(); } } public static void main(String args[]) { String url = "http://127.0.0.1:8983/solr/test201606"; String zkUrl = "127.0.0.1:9983";// PropertyConfigurator.configure("./etc/log4j.properties"); SimpleSorl ss = new SimpleSorl(url, 2); SimpleSorl sc = new SimpleSorl(zkUrl, 2, "test201607"); // 添加文档 sc.createDocs(); // 删除文档// sc.deleteById("00cda454-bd3d-4945-814f-afa7110dcd21"); sc.deleteByQuery("name:bean"); //更新文档 sc.updateField("bd67564f-4939-4de1-9a83-3483ebbbbbee", "name", "1233313131313"); sc.close(); // 查询文档 ss.queryDocs(); ss.close(); }}

 

转载地址:http://amesl.baihongyu.com/

你可能感兴趣的文章
I.MX6 Android 设备节点权限
查看>>
mysql中order by 和limit一起使用不当会导致效率极慢的4种优化方法
查看>>
您的Docker 容器还健康吗?一条简单命令帮您找出答案 [转载]
查看>>
WPF自定义控件与样式(14)-轻量MVVM模式实践
查看>>
HDD-FAT32 ZIP-FAT32
查看>>
当iPhone用上联发科,你还会爱上它吗?
查看>>
HDOJ(HDU) 1491 Octorber 21st
查看>>
ThinkPhp学习05
查看>>
Tomcat内核之ASCII解码的表驱动模式
查看>>
isual Studio 2013编译ImageMagick---转
查看>>
消息字节——MessageBytes
查看>>
送上最新鲜的互联网行业新闻-【2015-05-08】
查看>>
iOS Swift _Nullable 与 Android 注解帮助编译时检查 - 两家好像步调开始一致一段时间了...
查看>>
OpenCL异构计算资料收集
查看>>
Linux下按照时间和大小生成新文件的程序流程及其C代码实现
查看>>
MySQL数据库移植总结
查看>>
DockOne微信分享(一三零):探究PaaS网络模型设计
查看>>
控制并发访问的三道屏障: WCF限流(Throttling)体系探秘[下篇]
查看>>
移动WEB前端开发资源整合
查看>>
[WCF REST] 解决资源并发修改的一个有效的手段:条件更新(Conditional Update)
查看>>