您的位置:首页 > 编程语言 > Java开发

solr java api

2015-12-10 15:58 405 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/u013828362/article/details/84755739
// 获取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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: