转载请出自出处:http://www.cnblogs.com/hd3013779515/

Student.java

package cn.ljh.ssm.test;

import org.apache.solr.client.solrj.beans.Field;

public class Student{
@Field("id")
private String id;
@Field("stu_name")
private String name;
@Field("stu_sex")
private int sex;
@Field("stu_address")
private String address; 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 int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", sex=" + sex
+ ", address=" + address + "]";
}
}

CloudSolrClient.java

package cn.ljh.ssm.test;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CloudSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; public class CloudSolrClient { private CloudSolrClient client;
private CloudSolrServer cloudSolrServer; public synchronized void open(final String zkHost, final String defaultCollection,
int zkClientTimeout, final int zkConnectTimeout) {
if (cloudSolrServer == null) {
try {
cloudSolrServer = new CloudSolrServer(zkHost);
cloudSolrServer.setDefaultCollection(defaultCollection);
cloudSolrServer.setZkClientTimeout(zkClientTimeout);
cloudSolrServer.setZkConnectTimeout(zkConnectTimeout);
} catch (Exception e) {
e.printStackTrace();
}
}
} @Before
public void cloudSolrServerBuild(){
final String zkHost = "192.168.137.171:2181,192.168.137.172:2181,192.168.137.173:2181";
final String defaultCollection = "myc";
final int zkClientTimeout = 20000;
final int zkConnectTimeout = 2000; client = new CloudSolrClient();
client.open(zkHost, defaultCollection, zkClientTimeout, zkConnectTimeout); } @After
public void clean(){
client = null;
} @Test
public void testAdd(){
try { //先删除所有数据
client.cloudSolrServer.deleteByQuery("*:*"); SolrInputDocument doc = new SolrInputDocument();
doc.addField("id","200");
doc.addField("stu_name","张三");
doc.addField("stu_sex",0);
doc.addField("stu_address","nanchang");
client.cloudSolrServer.add(doc);
SolrInputDocument doc2 = new SolrInputDocument();
doc2.addField("id","201");
doc2.addField("stu_name","李四");
doc2.addField("stu_sex",1);
doc2.addField("stu_address","changsha");
client.cloudSolrServer.add(doc2); client.cloudSolrServer.commit();//提交,将所有更新提交到索引中
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 使用POJO添加document
*/
@Test
public void testAddStudent(){
try {
List<Student> studentList = new ArrayList<Student>();
Student stu1 = new Student();
stu1.setId("103");
stu1.setName("张小强");
stu1.setSex(1);
stu1.setAddress("北京市海淀区知春路");
studentList.add(stu1); stu1 = new Student();
stu1.setId("104");
stu1.setName("刘小米");
stu1.setSex(0);
stu1.setAddress("北京市海淀区北苑路");
studentList.add(stu1); client.cloudSolrServer.addBeans(studentList);
client.cloudSolrServer.commit();
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} @Test
public void testQueryStudent(){
try { String strQuery = "stu_name:小米";//q表示查询的内容
SolrQuery query = new SolrQuery(strQuery); QueryResponse resp = client.cloudSolrServer.query(query); SolrDocumentList sdList = resp.getResults();
long totalResults = sdList.getNumFound();//命中的总记录数 System.out.println("totalResults-->"+totalResults);
for(SolrDocument sd:sdList){
Student student = client.cloudSolrServer.getBinder().getBean(Student.class, sd);
System.out.println(student);
}
} catch (SolrServerException e) {
e.printStackTrace();
}
} @Test
public void testQuery(){
try { String strQuery = "stu_address:nanchang";//q表示查询的内容
SolrQuery query = new SolrQuery();
query.set("q",strQuery); QueryResponse resp = client.cloudSolrServer.query(query); SolrDocumentList sdList = resp.getResults();
long totalResults = sdList.getNumFound();//命中的总记录数 System.out.println("totalResults-->"+totalResults);
for(SolrDocument sd:sdList){
System.out.print("id:" + sd.getFieldValue("id") +
" " + " stu_name:" + sd.getFieldValue("stu_name") +
" " + " stu_address:" + sd.getFieldValue("stu_address"));
}
} catch (SolrServerException e) {
e.printStackTrace();
}
} @Test
public void testDelete(){
try {
client.cloudSolrServer.deleteById("200");
client.cloudSolrServer.commit();
} catch (Exception e) {
e.printStackTrace();
}
} }

13.4SolrCloud集群使用手册之CRUD的更多相关文章

  1. 13.1SolrCloud集群使用手册之Collections API

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.创建collection name:指明collection名字 router.name:指定路由策略,默 ...

  2. 13.3SolrCloud集群使用手册之Zookeeper指令

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.upconfig java -classpath .:/home/solr/cloud/lib/* org ...

  3. 13.2SolrCloud集群使用手册之CoreAdmin API

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ CoreAdminHandler是用来管理Solr cores的,用来管理一个Solr instance中所有 ...

  4. Ubuntu_10.04下Hadoop-0.20.2集群配置手册

    Ubuntu_10.04下Hadoop-0.20.2集群配置手册 一.软硬件环境的准备 下面的文章来自hadoopor.com,我先交待一下我自己的环境: 两台机器,每台机器上面两个虚机(vmware ...

  5. Nginx+Tomcat+MemCached 集群配置手册

    系统实施文档 Nginx+Tomcat+MemCached 集群配置手册 目    录 第1章   概述 1.1   目标 互联网的快速发展带来了互联网系统的高负载和高可用性, 这要求我们在设计系统架 ...

  6. Greenplum(4.3.73)集群安装手册

    1. 概述 本文档仅限于指导Greenplum 4.3.7.3(对应安装包greenplum-db-4.3.7.3-build-2-RHEL5-x86_64.bin)版本在CentOS6.5 系统进行 ...

  7. OEMCC 13.2 集群版本安装部署

    之前测试部署过OEMCC 13.2单机,具体可参考之前随笔: OEMCC 13.2 安装部署 当时环境:两台主机,系统RHEL 6.5,分别部署OMS和OMR: OMS,也就是OEMCC的服务端 IP ...

  8. kubeadm安装kubernetes 1.13.1集群完整部署记录

    k8s是什么 Kubernetes简称为k8s,它是 Google 开源的容器集群管理系统.在 Docker 技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提 ...

  9. Ubuntu 13 Zookeeper 集群配置

    一. 目标 在Linux集群搭建Zookeeper集群,并配置管理Web管理系统. 二. 先决条件 本文档中基于VirtualBox Ubuntu Server 13.04 虚机(启动SSH服务器)构 ...

随机推荐

  1. 为什么IIS的应用池回收设置默认为1740分钟-20180720

    [非原创,个人收集,希望大家有感触] 你可曾留心过IIS的应用池回收设置默认值是多少?1740分钟对吗,那么为什么会是这样的数值呢? 在asp.net的某篇博客里提到了这个问题. 有关微软产品的许多决 ...

  2. 处理html内容,获取纯文本

    import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.rege ...

  3. string类型与ASCII byte[]转换

    1. string类型转成 ASCII byte[]: byte[] byteArray = System.Text.Encoding.ASCII.GetBytes ( str ); 例:" ...

  4. EF只更新变化的字段

    摘要 在使用EF的时候,由于表字段较多,所以在更新的时候,想要只更新变化的字段,有没有办法呢? 解决办法 代码片段 public async Task<int> UpdateAsync(T ...

  5. C# serialPort的DataReceived事件无法触发 ,用的霍尼韦尔的扫码枪并且装了相应的USB转串口驱动。

    昨天想试试霍尼韦尔的扫码枪,扫码枪有两种模式,键盘模式和串口模式, 1.键盘模式直接插上就行了,就像一个键盘一样不需要任何驱动,扫出来的数据直接落到PC的输入焦点上.就像一个键盘一样,只能输入字符. ...

  6. eclipse中Cannot change version of project facet Dynamic Web Module to 3.0的问题解决

    在做web配置的时候,希望将web Module(Web模块)更换为3.0,发生如下错误: cannot change version of project facet Dynamic Web Mod ...

  7. 数据结构与算法--最短路径之Floyd算法

    数据结构与算法--最短路径之Floyd算法 我们知道Dijkstra算法只能解决单源最短路径问题,且要求边上的权重都是非负的.有没有办法解决任意起点到任意顶点的最短路径问题呢?如果用Dijkstra算 ...

  8. JAVA通过XPath解析XML性能比较

    转自[http://www.cnblogs.com/mouse-coder/p/3451243.html] 最近在做一个小项目,使用到XML文件解析技术,通过对该技术的了解和使用,总结了以下内容. 1 ...

  9. 模版方法模式(Template Method)

    1.概念 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板.它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行.这种类型的设计模式属于行为型 ...

  10. jquery 简单归纳 -- 前端知识

    jquery 什么是jQuery? jquery是轻量级的JavaScript库,核心是javascript,兼容css和各种浏览器,核心理念是写得少做得多(write less do more). ...