1. 程式人生 > >solr搜尋引擎的java程式碼的新增和查詢

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代表成功

    }
}