1.查询全部,或者按条件查询
/**查询**/
@Test
public void query() {
String URL = "http://localhost:8087/solr/core1"; //启动后Solr的URL
HttpSolrClient server = new HttpSolrClient(URL); //连接到服务
SolrQuery query = new SolrQuery("*:*");//定义查询内容, 查询条件可以修改,如 name:张三*
query.setStart(0);//从0开始
query.setRows(10);//查出10行
QueryResponse response;
SolrDocumentList resultList;
System.out.println("---------"+query.getQuery());
try {
response = server.query(query);
resultList = response.getResults();
System.out.println("---------"+resultList.getNumFound());
//查询出来的结果显示
for(SolrDocument doc:resultList){
System.out.println(doc);
}
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
2.添加索引里的一条记录
/**添加**/
@Test
public void addDoc() {
String URL="http://localhost:8087/solr/core1";
HttpSolrClient server = new HttpSolrClient(URL);
Collection<SolrInputDocument> documents = new ArrayList<SolrInputDocument>();
SolrInputDocument doc = new SolrInputDocument();
doc.addField("zzbm", "01010101");
doc.addField("zzmc", "新增文档的测试");
documents.add(doc);
try {
UpdateResponse response = server.add(documents);
System.out.println("添加进去 : "+documents.size()+"结果 : "+response.getStatus());
UpdateResponse responseCommit = server.commit(); //必须提交
System.out.println("commit结果:"+responseCommit.getStatus());
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
3.删除
/**删除:通过Id删除,我的Id是zzbm**/
//@Test
public void deleteDocById(){
String URL="http://localhost:8087/solr/core1";
HttpSolrClient server = new HttpSolrClient(URL);
try {
//这里用的Id是zzbm
UpdateResponse response = server.deleteById("01010101");
server.commit();
System.out.println("删除的结果:"+response.getStatus());
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**删除byquery:除id字段来删除
* 根据查询结果来删除**/
@Test
public void deleteDocByQuery(){
String URL="http://localhost:8087/solr/core1";
HttpSolrClient server = new HttpSolrClient(URL);
String query = "zzmc:新增文档的测试";
UpdateRequest request = new UpdateRequest();
//request.deleteByQuery(query); //HttpSolrClient也可以 server.deleteByQuery(query);
try {
server.deleteByQuery(query);
server.commit();
} catch (SolrServerException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
4.修改
/**修改:就是添加,如果id已经存在,就是修改**/
@Test
public void updateDoc(){
String URL="http://localhost:8087/solr/core1";
HttpSolrClient server = new HttpSolrClient(URL);
SolrInputDocument doc = new SolrInputDocument();
doc.addField("zzbm", "01010102");
doc.addField("zzmc", "测试测试");
try {
UpdateResponse response = server.add(doc);
UpdateResponse commitResponse = server.commit();
System.out.println("修改的结果:"+commitResponse.getStatus());
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
5.排序
/**测试solr的排序功能**/
@Test
public void testSolrSort(){
String URL = "http://localhost:8087/solr/core1";
HttpSolrClient server = new HttpSolrClient(URL); //连接到服务
SolrQuery query = new SolrQuery("*:*");//查询的字段等
//排序的字段
query.setSort("zzbm", ORDER.desc);//降序
query.addSort("zzmc", ORDER.desc);
//这句无效 query.addSort("zzbm", ORDER.asc);//set 再 addSort() --变成了无效
//设置查询的数量
query.setStart(0);
query.setRows(30);
QueryResponse response ;
SolrDocumentList documentList ;
try {
response = server.query(query); //服务 启动查询功能,得到返回的响应response
documentList = response.getResults();//从响应结果拿到返回的结果列表
for(SolrDocument document : documentList){
System.out.println(document);
}
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}