// 获取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; }
solr java api
猜你喜欢
转载自liliang68.iteye.com/blog/2263188
今日推荐
周排行