package com.solrcloud;
import com.solrcloud.bean.QuestionBean;
import com.solrcloud.utils.IDUtils;
import org.apache.http.client.utils.DateUtils;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.beans.DocumentObjectBinder;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.*;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.params.GroupParams;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.SolrParams;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* CloudSolrClient
*/
public class SolrCloudServer {
private static SolrCloudServer solrCloudServer = null;
private static CloudSolrClient cloudSolrClient = null;
private static List<String> zkHosts = new ArrayList<String>();//"127.0.0.1:2181;127.0.0.1:2182;127.0.0.1:2183";
// private static String zkHost = "127.0.0.1:2181/solr";
public static synchronized SolrCloudServer getInstance() {
if (solrCloudServer == null) {
solrCloudServer = new SolrCloudServer();
getServer();
}
return solrCloudServer;
}
private static CloudSolrClient getServer() {
try {
if (cloudSolrClient == null) {
zkHosts.add("127.0.0.1:2181");
zkHosts.add("127.0.0.1:2182");
zkHosts.add("127.0.0.1:2183");
cloudSolrClient = new CloudSolrClient(zkHosts,"/");
cloudSolrClient.setDefaultCollection("quectionCollection2");
// cloudSolrClient = new CloudSolrClient(zkHost);
cloudSolrClient.setZkClientTimeout(1000);
cloudSolrClient.setZkConnectTimeout(1000);
}
} catch (Exception e) {
System.out.println("SolrCloud连接失败,请检查ZK是否正常启动或地址端口是否配置正确!");
e.printStackTrace();
}
return cloudSolrClient;
}
// 简单的查询,取出二十个
public List<QuestionBean> queryTop20(String keywork,int maxResult) {
System.out.println("简单查询取出前二十个");
List<QuestionBean> beanList=null;
long startTime=System.currentTimeMillis();
try {
ModifiableSolrParams params = new ModifiableSolrParams();
// 查询关键词
if(StringUtils.isEmpty(keywork)){
params.set("q", "*:*");
}else{
params.set("q", "question:"+keywork);
}
// 返回信息
params.set("fl", "id,title,url,view,answer");
// 排序
//params.set("sort", "id asc");
// 分页,start=0就是从0开始,rows=5当前返回5条记录,第二页就是变化start这个值为5就可以了
params.set("start", 0);
params.set("rows", maxResult);
// 返回格式
params.set("wt", "javabin");
SolrDocumentList docs = cloudSolrClient.query(params).getResults();
// System.out.println("查询到的总记录数:"+docs.getNumFound());
// System.out.println("耗时:" + (System.currentTimeMillis()-startTime)+" 毫秒");
DocumentObjectBinder binder = new DocumentObjectBinder();
beanList=binder.getBeans(QuestionBean.class, docs);
for (QuestionBean s : beanList) {
System.out.println(s);
}
//cloudSolrClient.shutdown();
// String dtEnd = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
System.out.println("耗时:" + (System.currentTimeMillis()-startTime)+" 毫秒");
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return beanList;
}
// 简单的查询,取出二十个,通过JavaBean的方式返回
public void queryBeanTop20() {
System.out.println("简单查询取出前二十个");
String dtStart = new SimpleDateFormat("yyyyMMddHHmmssSSS")
.format(new Date());
System.out.println("开始时间:" + dtStart);
try {
ModifiableSolrParams params = new ModifiableSolrParams();
// 查询关键词
params.set("q", "计算机");
// 返回信息
params.set("fl", "id,name,price,score");
// 排序
params.set("sort", "price asc");
// 分页,start=0就是从0开始,rows=5当前返回5条记录,第二页就是变化start这个值为5就可以了
params.set("start", 0);
params.set("rows", 20);
// 返回格式
params.set("wt", "javabin");
SolrDocumentList list = cloudSolrClient.query(params).getResults();
DocumentObjectBinder binder = new DocumentObjectBinder();
List<QuestionBean> beanList=binder.getBeans(QuestionBean.class, list);
for (QuestionBean b : beanList) {
System.out.println("url="+b.getUrl()+";title="+b.getTitle());
}
cloudSolrClient.shutdown();
String dtEnd = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
System.out.println("结束时间:" + dtEnd);
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 添加索引
* @param questionBean
*/
public void addBeanToIndex(QuestionBean questionBean) {
try {
//获取连接服务
SolrInputDocument doc1 = new SolrInputDocument();
doc1.setField("id",questionBean.getId());
doc1.setField("url",questionBean.getUrl());
doc1.setField("title",questionBean.getTitle() );
doc1.setField("content", questionBean.getContent());
doc1.setField("answer", questionBean.getAnswer());//回答数
doc1.setField("focus", questionBean.getFocus());//关注
doc1.setField("sideBookmarked", questionBean.getSideBookmarked()); //收藏
doc1.setField("view", questionBean.getView());//浏览
String createTime= DateUtils.formatDate(questionBean.getCreateDate(), "yyyyMMddHHmmss");
doc1.setField("createTime",createTime);
System.out.println("indexId="+questionBean.getId()+";title="+questionBean.getTitle());
cloudSolrClient.add(doc1);
cloudSolrClient.commit();
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 添加索引 批量
* @param questionBeanList
*/
public void addBeanToIndex(List<QuestionBean> questionBeanList) {
try {
//获取连接服务
SolrInputDocument doc1 ;
if(questionBeanList!=null&&questionBeanList.size()>0){
for (QuestionBean q:questionBeanList) {
doc1 = new SolrInputDocument();
doc1.setField("id",q.getId());
没有合适的资源?快使用搜索试试~ 我知道了~
SolrTest solr测试工程
共82个文件
xml:53个
java:11个
svn-base:5个
需积分: 10 16 下载量 60 浏览量
2016-01-11
17:20:03
上传
评论
收藏 330KB ZIP 举报
温馨提示
SolrTest solr测试工程,包含从文件导入索引,和简单自动完成分页查询等。
资源推荐
资源详情
资源评论
收起资源包目录
SolrTest.zip (82个子文件)
SolrTest
pom.xml 4KB
schema.xml 60KB
src
main
webapp
images
ui-anim_basic_16x16.gif 18KB
WEB-INF
web.xml 2KB
searchList.jsp 5KB
resources
spring-mvc.xml 1KB
js
jquery-1.10.2.min.js 91KB
examples.js 5KB
handlebars.js 83KB
typeahead.bundle.js 94KB
search.jsp 2KB
plug-in
jquery
jquery-1.10.2.js 267KB
.svn
all-wcprops 815B
prop-base
props
tmp
prop-base
props
text-base
text-base
复件 house.js.mine.svn-base 6KB
sellhouse.js.svn-base 3KB
house1.js.svn-base 5KB
jquery-1.10.2.js.svn-base 267KB
house.js.svn-base 9KB
entries 950B
resources
spring-mvc.xml 1KB
log4j.properties 2KB
java
com
stomp
FileUtils.java 22KB
SearchController.java 5KB
Content.java 1016B
solrcloud
bean
PageBean.java 2KB
QuestionBean.java 3KB
SolrCloudServer.java 35KB
SolrServer.java 1KB
SolrMain.java 2KB
utils
ExcelException.java 582B
ExcelUtil.java 20KB
IDUtils.java 647B
.idea
uiDesigner.xml 9KB
misc.xml 1KB
.name 5B
copyright
profiles_settings.xml 76B
modules.xml 256B
encodings.xml 159B
compiler.xml 1KB
workspace.xml 106KB
libraries
Maven__commons_lang_commons_lang_2_4.xml 621B
Maven__aopalliance_aopalliance_1_0.xml 610B
Maven__commons_io_commons_io_2_4.xml 599B
Maven__org_springframework_spring_beans_4_0_4_RELEASE.xml 719B
Maven__org_springframework_spring_core_4_0_4_RELEASE.xml 712B
Maven__javax_servlet_javax_servlet_api_3_0_1.xml 674B
Maven__org_springframework_spring_web_4_0_4_RELEASE.xml 705B
Maven__org_springframework_spring_expression_4_0_4_RELEASE.xml 754B
Maven__org_codehaus_woodstox_stax2_api_3_1_4.xml 650B
Maven__org_apache_httpcomponents_httpmime_4_4_1.xml 659B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_4_0.xml 740B
Maven__com_rabbitmq_amqp_client_3_5_5.xml 628B
Maven__com_fasterxml_jackson_core_jackson_core_2_4_0.xml 691B
Maven__junit_junit_3_8_1.xml 558B
Maven__net_sf_ezmorph_ezmorph_1_0_6.xml 608B
Maven__org_apache_httpcomponents_httpclient_4_4_1.xml 673B
Maven__org_noggit_noggit_0_6.xml 571B
Maven__org_springframework_spring_aop_4_0_4_RELEASE.xml 705B
Maven__org_codehaus_woodstox_woodstox_core_asl_4_4_1.xml 706B
Maven__org_apache_solr_solr_solrj_5_2_0.xml 633B
Maven__javax_servlet_jsp_javax_servlet_jsp_api_2_2_1.xml 718B
Maven__org_slf4j_slf4j_api_1_7_7.xml 602B
Maven__net_sf_json_lib_json_lib_jdk15_2_3.xml 617B
Maven__org_apache_httpcomponents_httpcore_4_4_1.xml 659B
Maven__org_slf4j_slf4j_simple_1_7_7.xml 623B
Maven__org_slf4j_slf4j_log4j12_1_7_7.xml 630B
Maven__commons_logging_commons_logging_1_1_1.xml 668B
Maven__log4j_log4j_1_2_14.xml 565B
Maven__net_sourceforge_jexcelapi_jxl_2_6_12.xml 631B
Maven__org_springframework_spring_webmvc_4_0_4_RELEASE.xml 726B
Maven__org_slf4j_slf4j_nop_1_7_7.xml 602B
Maven__com_fasterxml_jackson_module_jackson_module_jaxb_annotations_2_4_0.xml 832B
Maven__org_apache_zookeeper_zookeeper_3_4_6.xml 646B
Maven__commons_collections_commons_collections_3_2_1.xml 712B
Maven__com_fasterxml_jackson_core_jackson_databind_2_4_0.xml 719B
Maven__javax_servlet_jstl_1_2.xml 569B
Maven__commons_beanutils_commons_beanutils_1_8_0.xml 690B
Maven__org_slf4j_slf4j_jdk14_1_7_7.xml 616B
Maven__org_springframework_spring_context_4_0_4_RELEASE.xml 733B
artifacts
Stomp_war.xml 293B
Stomp_war_exploded.xml 4KB
SolrTest.iml 5KB
共 82 条
- 1
资源评论
TangKai_java
- 粉丝: 12
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功