转载请出自出处: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. 我进行jvm内存调优的一些记录

    jvm内存调优的一些记录 java内存调优的方法和过程 可以使用 jmap -heap pid号 查看,例如pid是9300,执行的结果可能是这样的. root@ubuntu:~# jmap -hea ...

  2. 基于asp.net mvc的近乎产品开发培训课程(第二讲)

    演示产品源码下载地址:http://www.jinhusns.com/Products/Download 

  3. 8.C#知识点:委托和事件

    知识点目录==========>传送门 首先推荐两篇大牛写的委托和事件的博客,写的超级好!看了就包你看会,想学习的朋友直接看这两篇就足以,我自己写的是算是自己学习的纪录. 传送门======== ...

  4. [PHP] 排序和查找算法

    知乎:冒泡排序(bubble sort)的原理是什么? 潘屹峰: 冒泡排序的原理可以顾名思义:把每个数据看成一个气泡,按初始顺序自底向上依次对两两气泡进行比较,对上重下轻的气泡交换顺序(这里用气泡轻. ...

  5. 大明A+B(hdu1753)大数,java

    大明A+B Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  6. java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)

    global.gradle版本配置文件 原配置 compile_sdk_version = 26 build_tools_version = '26.0.2' target_sdk_version = ...

  7. [转载] Spring框架——AOP前置、后置、环绕、异常通知

    通知类型: 步骤: 1. 定义接口 2. 编写对象(被代理对象=目标对象) 3. 编写通知(前置通知目标方法调用前调用) 4. 在beans.xml文件配置 4.1 配置 被代理对象=目标对象 4.2 ...

  8. CSS 简单归纳 -- 前端知识

    CSS:cascading style sheets层叠样式表,用于美化页面 css的三种表现形式:1.行内样式(内嵌样式):结构的内部,即写在标签内的样式:写在标签的开始部分内部,style属性当中 ...

  9. @NotNull、@NotEmpty、@NotBlank的区别

    Spring中@NotNull.@NotEmpty.@NotBlank的区别@NotNull:用于基本数据类型@NotEmpty:用于集合类@NotBlank:用于String上面

  10. css实现自适应正方形的方法

    页面布局中,我们经常需要用百分比来实现宽度自适应,但是如果这时候高度要跟宽度呈固定比例变化,该怎么办呢? 很简单,我们可以利用元素的padding或margin的百分比值是参照父元素的宽度这一特性来实 ...