Solrj 之HttpSolrClient
旧版本的连接服务HttpSolrServer在solr5版本后已经停用,被新的HttpSolrClient取代,可以从下面的url中查看相关的API,了解更详细的变动。
HttpSolrClient server=new HttpSolrClient(url);//设置对应请求的目标主机线程数为1000条server.setDefaultMaxConnectionsPerHost(1000); server.setMaxTotalConnections(10000);server.setConnectionTimeout(60000);//设置连接超时时间(单位毫秒) 1000server.setSoTimeout(60000);// 设置读数据超时时间(单位毫秒) 1000server.setFollowRedirects(false);//遵循重定向server.setAllowCompression(true);//允许压缩
Solrj添加索引
HttpSolrClient server = SolrServer.getServer();SolrInputDocument doc = new SolrInputDocument();doc.addField("id", "123456");doc.addField("title_s", "test");doc.addField("des_s", "test des");try {server.add(doc);server.commit();} catch (Exception e) {e.printStackTrace();}
Id:索引中的唯一ID,定义见配置。
title_s:动态字符串域定义,静态见官方配置。
Solrj查询索引
HttpSolrClient server = SolrServer.getServer();SolrQuery sQuery = new SolrQuery();sQuery.setQuery(str); // 默认*:* , des_s:xxx , 具体见查询语法//sQuery.set("q", "des_s:test*");// 查询nickname是chm开头的数据sQuery.setStart(0); // 检索偏移量sQuery.setRows(5); // 返回行数QueryResponse queryResponse;try { queryResponse = server.query(sQuery); SolrDocumentList list = queryResponse.getResults(); System.out.println("query result nums: " + list.getNumFound()); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i).getFieldValue("des_s")); }} catch (Exception e) { e.printStackTrace();}
Solrj删除索引
HttpSolrClient server = SolrServer.getServer();server.deleteById(“123456”); // 单个idserver.commit();
HttpSolrClient server = SolrServer.getServer();List ids = new ArrayList();ids.add(“123456”); // id的集合server.deleteById(ids);server.commit();
领取专属 10元无门槛券
私享最新 技术干货