solr java api

	// 获取cloudsolrserver
private CloudSolrServer getsearchclient(String corename) {
CloudSolrServer server = null;
// 从配置文件中读取
PropertyHolder propertyHolder = new PropertyHolder("search");
String ZKHOST = propertyHolder.getProperty("ZKHOST");
String client_timeout = propertyHolder.getProperty("ZK_CLIENT_TIMEOUT");
String connect_timeout = propertyHolder
.getProperty("ZK_CONNECT_TIMEOUT");
try {
server = new CloudSolrServer(ZKHOST);
server.connect();
System.out.println("连接成功");
} catch (MalformedURLException e) {
e.printStackTrace();
}
server.setDefaultCollection(corename);
server.setZkClientTimeout(Integer.parseInt(client_timeout));
server.setZkConnectTimeout(Integer.parseInt(connect_timeout));

return server;
}

// 分页查询
private SolrQuery querypage() {
SolrQuery query = new SolrQuery("*:*");
query.set("start", 0);
// rows 设为 (Integer.MAX_VALUE)则为查询所有数据
query.set("rows", 30);
return query;
}

// 条件查询
private SolrQuery query() {
SolrQuery query = new SolrQuery();
// 查询不等于1
// query.setQuery("id:(!1)");
// 查询等于1
// query.setQuery("id:1");
// 查询id 等于1 或等于2(注意加空格)
// query.setQuery("id:(1 || 2)");
// 查询不等于1 且不等于10
query.setQuery("id:(!1 && !10)");
query.set("sort", "id asc");
return query;
}

private SolrQuery querysunm() {
SolrQuery query = new SolrQuery("*:*");
// query.setQuery("")
return query;
}

// 查询所有的索引
private SolrQuery queryall() {

SolrQuery query = new SolrQuery("*:*");
query.set("sort", "id asc");
return query;
}

// 聚合查询
private SolrQuery groupquery() {
// group by 查询必须加 *:*
SolrQuery query = new SolrQuery("*:*");
query.addFacetField("dept");
// 查询分组后字段dept 前缀为网络营销的
query.setFacetPrefix("网络营销");
// query.setFacetSort(true);
return query;
}

// 聚合查询输出
private void groupprint(CloudSolrServer server, SolrQuery query,
String field) {
QueryResponse response;
try {
response = server.query(query);
List<Count> factcount = response.getFacetField(field).getValues();
for (Count count : factcount) {
System.out.println(count);
}
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

// 查询输出
private void print(CloudSolrServer server, SolrQuery query) {
QueryResponse response;
try {
response = server.query(query);
SolrDocumentList list = response.getResults();
for (SolrDocument solrDocument : list) {
if (solrDocument.get("id") != null) {
String dept = solrDocument.get("id").toString();
System.out.println(dept);
} else {
continue;
}
}
} catch (SolrServerException e) {
e.printStackTrace();
}

}

// 过滤查询
private SolrQuery filterquery() {
SolrQuery query = new SolrQuery("*:*");
// 查询id大于等于1 并且小于等于 10 的索引
query.set("fq", "id:[1 TO 10]");
return query;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值