[Solr]業(yè)務(wù)字段配置以及java操作Solr

一 典徘、業(yè)務(wù)字段配置

vim solrhome/collection1/conf/schema.xml

添加如下配置


業(yè)務(wù)字段配置

商品信息格式


image.png
  • 重啟tomcat

查詢測試(高亮)
查詢測試

二 、java通過Solrj操作solr

1. 創(chuàng)建maven工程 (pom.xml)
<project xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.jiazf.demo</groupId>
      <artifactId>solrdemo</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <dependencies>
            <!--   https://mvnrepository.com/artifact/org.apache.solr/solr-solrj -->
            <dependency>
                  <groupId>org.apache.solr</groupId>
                  <artifactId>solr-solrj</artifactId>
                  <version>4.10.4</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/junit/junit   -->
            <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>4.12</version>
                  <scope>test</scope>
            </dependency>
            <!--   https://mvnrepository.com/artifact/commons-logging/commons-logging -->
            <dependency>
                  <groupId>commons-logging</groupId>
                  <artifactId>commons-logging</artifactId>
                  <version>1.2</version>
            </dependency>
      </dependencies>
</project>
2. 創(chuàng)建java測試類
package mytest;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Test;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public class SolrjTest {
    //創(chuàng)建一個連接
    SolrServer solrServer = new HttpSolrServer("http://192.168.153.22:8080/solr");

    @Test
    /**
     * 增加操作
     */
    public void addItem() throws IOException, SolrServerException {

        //創(chuàng)建一個文檔對象
        SolrInputDocument document = new SolrInputDocument();
        document.addField("id", "test001");
        document.addField("item_title", "測試title");
        document.addField("item_sell_point", "測試");
        document.addField("item_price", "11111");
        document.addField("item_image", "111111");
        document.addField("item_category_name", "111111");

        //將item添加到solr的服務(wù)器中
        solrServer.add(document);
        solrServer.commit();
    }

    @Test
    /**
     * 刪除操作
     */
    public void deleteItem() throws IOException, SolrServerException {
        solrServer.deleteByQuery("id:test001");
        solrServer.commit();
    }

    @Test
    /**
     * 查詢 "三星" 關(guān)鍵字
     */
    public void paginatedQuery() throws Exception {
        int page = 8;
        int size = 5;
        // 創(chuàng)建一個查詢對象
        SolrQuery query = new SolrQuery();
        // 設(shè)置查詢條件
        query.setQuery("三星");
        //設(shè)置開始條目數(shù)字
        query.setStart((page - 1) * size);
        //設(shè)置每頁顯示多少條記錄
        query.setRows(size);
        //設(shè)置是否使用高亮
        query.setHighlight(true);
        //高亮的前置字符串
        query.setHighlightSimplePre("<span style='color:red; font-weight:bold'>");
        //高亮的后置字符串
        query.setHighlightSimplePost("</span>");
        //設(shè)置默認字段用于搜索
        query.set("df", "item_title");
        //設(shè)置添加高亮的字段
        query.addHighlightField("item_title");
        // 根據(jù)查詢條件查詢索引庫
        QueryResponse queryResponse = solrServer.query(query);
        // 取查詢結(jié)果
        SolrDocumentList solrDocumentList = queryResponse.getResults();
        // 取查詢結(jié)果總數(shù)量
        System.out.println(solrDocumentList.getNumFound());
        // 取高亮顯示
        Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting();
        // 取商品列表
        for (SolrDocument solrDocument : solrDocumentList) {
            System.out.println(solrDocument.get("id"));
            // 取高亮顯示的結(jié)果
            List<String> list = highlighting.get(solrDocument.get("id")).get("item_title");
            String title = "";
            if (list != null && list.size() > 0) {
                title = list.get(0);
            } else {
                title = (String) solrDocument.get("item_title");
            }
            System.out.println(title);
            System.out.println(solrDocument.get("item_image"));
            System.out.println(solrDocument.get("item_price"));
            System.out.println(solrDocument.get("item_sell_point"));
            System.out.println(solrDocument.get("item_category_name"));
            System.out.println("=======================================");
        }
    }
}
3. 效果
  • 插入效果


    item插入
  • 刪除效果


    刪除效果
  • 查詢效果


    查詢效果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末录粱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子靠益,更是在濱河造成了極大的恐慌疮鲫,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昏苏,死亡現(xiàn)場離奇詭異尊沸,居然都是意外死亡威沫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門洼专,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棒掠,“玉大人,你說我怎么就攤上這事屁商⊙毯埽” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵蜡镶,是天一觀的道長雾袱。 經(jīng)常有香客問我,道長官还,這世上最難降的妖魔是什么芹橡? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮望伦,結(jié)果婚禮上僻族,老公的妹妹穿的比我還像新娘。我一直安慰自己屡谐,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布蝌数。 她就那樣靜靜地躺著愕掏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪顶伞。 梳的紋絲不亂的頭發(fā)上饵撑,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音唆貌,去河邊找鬼滑潘。 笑死,一個胖子當著我的面吹牛锨咙,可吹牛的內(nèi)容都是我干的语卤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼酪刀,長吁一口氣:“原來是場噩夢啊……” “哼粹舵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起骂倘,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤眼滤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后历涝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诅需,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡漾唉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了堰塌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赵刑。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蔫仙,靈堂內(nèi)的尸體忽然破棺而出料睛,到底是詐尸還是另有隱情,我是刑警寧澤摇邦,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布恤煞,位于F島的核電站,受9級特大地震影響施籍,放射性物質(zhì)發(fā)生泄漏居扒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一丑慎、第九天 我趴在偏房一處隱蔽的房頂上張望喜喂。 院中可真熱鬧,春花似錦竿裂、人聲如沸玉吁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽进副。三九已至,卻和暖如春悔常,著一層夾襖步出監(jiān)牢的瞬間影斑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工机打, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留矫户,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓残邀,卻偏偏與公主長得像皆辽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子芥挣,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,808評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理膳汪,服務(wù)發(fā)現(xiàn),斷路器九秀,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 想當然是個很糟糕的習慣遗嗽,或者說問題。 我們一般很難意識到有些問題我們想當然了鼓蜒。比如痹换,想當然某個問題就是某某負責征字,想...
    奔跑的湯盆兒閱讀 305評論 0 0
  • 夏季如何防熱毒?在中醫(yī)看來娇豫,高溫匙姜、潮熱氣候條件下應(yīng)注意防范體內(nèi)熱毒堆積,一旦熱毒瘀滯冯痢,容易導致皮膚出現(xiàn)紅痛腫熱等癥...
    海南花閱讀 351評論 0 0
  • 這一刻 我走在去圖書館的路上 這是去圖書館的橋上氮昧,習慣了盜著別人的圖,但是大學真的很美浦楣,這個沒有父母沒有熟悉的閨蜜...
    Zoe333口亨閱讀 145評論 0 0