solr搜尋引擎的java程式碼的新增和查詢
package solr;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrQuery.ORDER;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
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 class SolrTest {
@Test
public void testSelect()throws Exception{
SolrClient solrClient=new HttpSolrClient("http://192.168.24.104:8080/solr/hxcore1");
// 建立solrquery
SolrQuery query = new SolrQuery();
// 設定查詢條件、過濾條件、分頁條件、排序條件、高亮
// 設定預設搜尋域
query.set("df", "item_keywords");
query.setQuery("遊輪");
// 設定分頁
query.setStart(0);
query.setRows(100);
// 設定排序條件
query.setSort("id", ORDER.desc);
// 得到查詢結果物件
QueryResponse resp = solrClient.query(query);
SolrDocumentList solrArr = resp.getResults();
// 迴圈集合
for (SolrDocument doc : solrArr) {
String id = doc.getFieldValue("id").toString();
String title = doc.getFieldValue("item_title").toString();
String sellPoint = doc.getFieldValue("item_sellpoint").toString();
Long price = (Long) doc.getFieldValue("item_price");
System.out.println(id);
System.out.println(title);
System.out.println(sellPoint);
System.out.println(price);
System.out.println("-------------------------------------------");
}
solrClient.close();
}
@Test
public void testInsert() throws Exception {
SolrClient solrClient = new HttpSolrClient(
"http://192.168.24.104:8080/solr/hxcore1");
// 新建一個物件
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "11111111");
doc.addField("item_title", "豪華遊輪");
doc.addField("item_sellpoint", "太空進口");
doc.addField("item_price", 500000);
doc.addField("item_num", 9999);
doc.addField("item_categoryName", "遊輪");
doc.addField("item_categoryId", 56);
UpdateResponse resp = solrClient.add(doc);
solrClient.commit(); // 擔交
solrClient.close();
System.out.println("狀態碼:" + resp.getStatus()); // 0代表成功
}
}