solr的安装与使用
package com.demo.web.solr.PDF;import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Test;
public>//solr 服务器地址 public static final String solrServerUrl = "http://localhost:8983/solr";
//solrhome下的core
public static final String solrCroeHome = "artcile";
SolrClient solrclient;
public SolrInsertTest(){
this.solrclient=new HttpSolrClient(solrServerUrl + "/" + solrCroeHome);
}
//增加文档:addDucument()
@Test
public void addDucument() throws IOException{
System.out.println("======================add doc ===================");
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
for (int i =6; i < 9; i++) {
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", i*100);
doc.addField("name", "user"+i);
doc.addField("price", "100");
doc.addField("description", "新增文档"+i);
doc.addField("doc", "d09ffe7ec68744ceb342a658be6e2c1a");
docs.add(doc);
}
try {
UpdateResponse rsp = solrclient.add(docs);
// UpdateResponse rsp = solrclient.addBean(docs);
System.out.println("Add doc> UpdateResponse rspcommit = solrclient.commit();
System.out.println("commit doc to index" + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime());
} catch (SolrServerExceptione) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//@Test
public void queryDocuments(){
System.out.println("-----------查询文档:queryDocuments()----------- ");
SolrQuery params = new SolrQuery();
System.out.println("======================query===================");
params.set("q", "*:*");
params.set("start", 0);
params.set("rows", 20);
params.set("sort", "id asc");
try {
QueryResponse rsp = solrclient.query(params);
SolrDocumentList docs = rsp.getResults();
System.out.println("查询内容:" + params);
System.out.println("文档数量:" + docs.getNumFound());
System.out.println("查询花费时间:" + rsp.getQTime());
System.out.println("------query data:------");
for (SolrDocument doc : docs) {
// 多值查询
@SuppressWarnings("unchecked")
String> String name = (String) doc.getFieldValue("name");
String price = String.valueOf(doc.getFieldValue("price"));
String des = (String) doc.getFieldValue("description");
List<String> dock = (List)doc.getFieldValue("doc");
System.out.println("id:"+id+"\t name:" + name + "\t description:"+des+"\t price:"+price+"\t doc:"+dock );
}
System.out.println("-----------------------");
} catch (Exception e) {
e.printStackTrace();
}
}
//@Test
public void deleteById(String>
System.out.println(" -----------删除文档BY> System.out.println("======================deleteById ===================");
try {
UpdateResponse rsp = solrclient.deleteById(id);
solrclient.commit();
System.out.println("delete> } catch (SolrServerException | IOException e) {
e.printStackTrace();
}
}
// -----------删除文档BY QUERY:deleteByQuery()-----------
public void deleteByQuery(String query) {
System.out.println("======================deleteByQuery ===================");
UpdateResponse rsp;
try {
UpdateRequest commit = new UpdateRequest();
commit.deleteByQuery(query);
commit.setCommitWithin(500);
commit.process(solrclient);
System.out.println("url:"+commit.getPath()+"\t xml:"+commit.getXML()+" method:"+commit.getMethod());
// rsp = client.deleteByQuery(query);
// client.commit();
// System.out.println("delete query:" + queryCon + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime());
} catch (SolrServerException | IOException e) {
e.printStackTrace();
}
}
//-----------更新文档:updateDocuments()-----------
//@Test
public void updateDocuments(int> System.out.println("======================updateField ===================");
HashMap<String, Object> oper = new HashMap<String, Object>();
// 多值更新方法
// List<String> mulitValues = new ArrayList<String>();
// mulitValues.add(fieldName);
// mulitValues.add((String)fieldValue);
oper.put("set", fieldValue);
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id",> doc.addField(fieldName, oper);
try {
UpdateResponse rsp = solrclient.add(doc);
System.out.println("update doc> UpdateResponse rspCommit = solrclient.commit();
System.out.println("commit doc to index" + " result:" + rspCommit.getStatus() + " Qtime:" + rspCommit.getQTime());
} catch (SolrServerException | IOException e) {
e.printStackTrace();
}
}
public static void main(String args[]) throws IOException {
SolrInsertTest test = new SolrInsertTest();
//添加文档
test.addDucument();
// 删除文档
//test.deleteById("200");
test.deleteByQuery("name:user3");
//更新文档
test.updateDocuments(400, "name", "user新");
// 查询文档
test.queryDocuments();
}
}
页:
[1]