13.4SolrCloud集群使用手册之CRUD

时间:2022-11-10 16:07:03

转载请出自出处: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&period;1SolrCloud集群使用手册之Collections API

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

  2. 13&period;3SolrCloud集群使用手册之Zookeeper指令

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

  3. 13&period;2SolrCloud集群使用手册之CoreAdmin API

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

  4. Ubuntu&lowbar;10&period;04下Hadoop-0&period;20&period;2集群配置手册

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

  5. Nginx&plus;Tomcat&plus;MemCached 集群配置手册

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

  6. Greenplum(4&period;3&period;73)集群安装手册

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

  7. OEMCC 13&period;2 集群版本安装部署

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

  8. kubeadm安装kubernetes 1&period;13&period;1集群完整部署记录

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

  9. Ubuntu 13 Zookeeper 集群配置

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

随机推荐

  1. spring mvc 快速入门

    ---------- 转自尚学堂 高淇 --------- Spring  MVC 背景介绍 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC ...

  2. jqgrid显示一行的详情

    http://blog.csdn.net/yangbobo1992/article/details/7930145 http://www.trirand.com/jqgridwiki/doku.php ...

  3. jsp eclipse 创建jsp项目

    选择File菜单 File->new->Other... 选择Dynamic Web Project项目->Next 写入项目->Finish 在WebContent鼠标右键- ...

  4. MVC开发模式

     关于mvc详情可参阅:http://www.w3school.com.cn/aspnet/mvc_intro.asp MVC (Modal View Controler)本来是存在于Desktop程 ...

  5. BZOJ 1045 糖果传递

    奇怪的式子.最后发现取中位数. #include<iostream> #include<cstdio> #include<cstring> #include< ...

  6. Knockout应用开发指南(完整版) 目录索引

    http://learn.knockoutjs.com/  所有示例和代码都在在上面直接运行预览 注意:因为它用了google的cdn加速,所要要用代_理+_翻_墙才能正常加载 使用Knockout有 ...

  7. ettercap ARP dns 欺骗

    1.arp 这个简单,太熟了.略过1     2.dns   根据arp欺骗的步骤. 多了个etter.dns文件 找到它:locate etter.dns 进入后添加dns正向解析     启动,选 ...

  8. 有效防止softmax计算时上溢出(overflow)和下溢出(underflow)的方法

    <Deep Learning>(Ian Goodfellow & Yoshua Bengio & Aaron Courville)第四章「数值计算」中,谈到了上溢出(ove ...

  9. 快速实现office文档在线预览展示(doc&comma;docx&comma;xls&comma;xlsx&comma;ppt&comma;pptx)

    微软:https://view.officeapps.live.com/op/view.aspx?src=(输入你的文档在服务器中的地址):

  10. Cpython支持的进程与线程

    一.multiprocessing模块介绍 python中的多线程无法利用CPU资源,在python中大部分情况使用多进程.python中提供了非常好的多进程包multiprocessing. mul ...