成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

sorl實(shí)現(xiàn)商品快速搜索

genefy / 2452人閱讀

摘要:概述是的一個(gè)頂級(jí)開源項(xiàng)目,采用開發(fā),它是基于的全文搜索服務(wù)器。提供了比更為豐富的查詢語言,同時(shí)實(shí)現(xiàn)了可配置可擴(kuò)展,并對(duì)索引搜索性能進(jìn)行了優(yōu)化。搜索只需要發(fā)送請(qǐng)求,然后對(duì)返回等格式的查詢結(jié)果進(jìn)行解析,組織頁(yè)面布局。

Solr概述

Solr 是Apache的一個(gè)頂級(jí)開源項(xiàng)目,采用Java開發(fā),它是基于Lucene的全文搜索服務(wù)器。Solr提供了比Lucene更為豐富的查詢語言,同時(shí)實(shí)現(xiàn)了可配置、可擴(kuò)展,并對(duì)索引、搜索性能進(jìn)行了優(yōu)化。
Solr可以獨(dú)立運(yùn)行在Jetty、Tomcat等這些Servlet容器中,Solr 索引的實(shí)現(xiàn)方法很簡(jiǎn)單,用 POST 方法向 Solr 服務(wù)器發(fā)送一個(gè)描述 Field 及其內(nèi)容的 XML 文檔,Solr根據(jù)xml文檔添加、刪除、更新索引 。Solr 搜索只需要發(fā)送 HTTP GET 請(qǐng)求,然后對(duì) Solr 返回Xml、json等格式的查詢結(jié)果進(jìn)行解析,組織頁(yè)面布局。Solr不提供構(gòu)建UI的功能,Solr提供了一個(gè)管理界面,通過管理界面可以查詢Solr的配置和運(yùn)行情況。

Docker安裝Solr服務(wù)

拉取 Solr 鏡像:docker pull solr:7.4.0

啟動(dòng) Solr 容器docker run --name taotao-solr -d -p 8983:8983 -t solr:7.4.0

訪問 http://114.115.215.xxx:8983/

Solr界面功能

新建core
docker exec -it --user=solr mysolr bin/solr create_core -c shop
安裝中文分詞器、并設(shè)置業(yè)務(wù)系統(tǒng)Field

分詞器安裝參考文章:https://github.com/ik-analyzer

文件傳輸傳輸參考:Docker容器和本機(jī)之間的文件傳輸

傳jar包和配置文件

wget方式把jar包下載到根目錄:

wget https://search.maven.org/remotecontent?filepath=com/github/magese/ik-analyzer/7.7.0/ik-analyzer-7.7.0.jar

找到容器長(zhǎng)ID:docker inspect my-solr | grep Id

將jar包放入Solr服務(wù)的webapp/WEB-INF/lib/目錄下

docker cp /root/ik-analyzer-7.6.0.jar 9d7cf2c5315e405e7a8cadc40dcef93fd893f39f0cf70ad42c3b1b70729d2423:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib

將resources目錄下的5個(gè)配置文件放入solr服務(wù)的webapp/WEB-INF/classes/目錄下;

① IKAnalyzer.cfg.xml
② ext.dic
③ stopword.dic
④ ik.conf
⑤ dynamicdic.txt
配置managed-schema

進(jìn)入solr容器:docker exec -it -u root my-solr /bin/bash

編輯managed-schema文件:vim /opt/solr/server/solr/shop/conf/managed-schema

把下面一段加到最后



  
      
      
  
  
      
      
  













別忘了重啟容器:docker restart my-solr
代碼解釋:加了type="text_ik"表示這個(gè)字段使用分詞器分拆,表示把這個(gè)字段加入一個(gè)之前創(chuàng)建新的集合item_keywords中,以后使用這個(gè)字段檢索可達(dá)到全文檢索的目的。

嘗試把一條商品信息導(dǎo)入到Solr庫(kù)中

新建springboot項(xiàng)目,加依賴:


    org.apache.solr
    solr-solrj
    7.7.1

配置文件添加:

spring.data.solr.host=http://114.115.215.xxx:8983/solr

核心代碼:

@RestController
public class HelloController {
    @Autowired
    private SolrClient client;
    @RequestMapping("/hello")
    public Object hello() throws IOException, SolrServerException {
        SolrInputDocument doc = new SolrInputDocument();
        List list= itemInfoMapper.findAll();
        doc.setField("item_title","Apple iPhone X (A1865) 64GB 深空灰色 移動(dòng)聯(lián)通電信4G手機(jī)");
        doc.setField("item_sell_point","【搶券立減200元!】5.8英寸視網(wǎng)膜全面屏,無線充電,面容ID,1200萬后置雙攝。");
        doc.setField("item_price",6299.00);
        doc.setField("item_category_name","手機(jī)");
        doc.setField("item_desc","單卡單待網(wǎng)絡(luò)制式:4G LTE全網(wǎng)通機(jī)身內(nèi)存:64GB4G LTE網(wǎng)絡(luò)特性:移動(dòng)4G");
        client.add("shop",doc);
        client.commit("shop");
        return "ok";
    }
}

測(cè)試:

為什么這么多數(shù)據(jù),不是只加了一條嘛? 我已經(jīng)走完了下面一步,這里只是為了演示給你看。

把數(shù)據(jù)庫(kù)中所有商品信息導(dǎo)入索引庫(kù)

先把mysql、mybatis依賴全部加進(jìn)來

新建實(shí)體類

public class Item {
    private Long id;
    private String title;
    private String sell_point;
    private Long price;
    private String image;
    private String category_name;
}

dao層

public interface ItemInfoMapper {
    @Select("SELECT
" +
            "	a.id,
" +
            "	a.title,
" +
            "	a.sell_point,
" +
            "	a.price,
" +
            "	a.image,
" +
            "	b. NAME category_name
" +
            "FROM
" +
            "	tb_item a
" +
            "LEFT JOIN tb_item_cat b ON a.cid = b.id")
    List findAll();
}

記得讓springboot掃描哦

@SpringBootApplication
@MapperScan("com.yungou.shop.shopsearch.Mapper")
public class ShopSearchApplication {
    public static void main(String[] args) {
        SpringApplication.run(ShopSearchApplication.class, args);
    }
}

下面開發(fā)核心代碼了,登登登登:

@RestController
public class HelloController {
    @Autowired
    private SolrClient client;
    @Autowired
    private ItemInfoMapper itemInfoMapper;
    @RequestMapping("/hello")
    public Object hello() throws IOException, SolrServerException {
        SolrInputDocument doc = new SolrInputDocument();
        List list= itemInfoMapper.findAll();
        for (ItemInfo itemInfo:list){
            doc.setField("item_title",itemInfo.getTitle());
            doc.setField("item_sell_point",itemInfo.getSell_point());
            doc.setField("item_price",itemInfo.getPrice());
            doc.setField("item_category_name",itemInfo.getCategory_name());
            client.add("shop",doc);
        }
        client.commit("shop");
        return "ok"+list.size();
    }
}

讓數(shù)據(jù)加載一會(huì),數(shù)據(jù)多的話可能要等幾分鐘。

回到管理界面

我們看到已經(jīng)有6666條數(shù)據(jù)加載進(jìn)來了,大功告成,666!

總結(jié)

經(jīng)過這個(gè)案例,應(yīng)該是把線上部署的大多數(shù)情況都過了一遍。享受docker部署便利的同時(shí),由于第一次操作docker文件,這里耗了點(diǎn)時(shí)間。最蠢的事情是明明加入的是text_ik,自己一直在搜ik,怎么搜來搜去搜不到,明明已經(jīng)啟動(dòng)成功了呀。然后弄來弄去才發(fā)現(xiàn),也費(fèi)了點(diǎn)時(shí)間。警惕自己以后一定要細(xì)心,注意細(xì)節(jié)呀。除此之外,其他的都比較順利。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27712.html

相關(guān)文章

  • 電商參考架構(gòu)第一部分:搭建一個(gè)靈活、可搜索、響應(yīng)快速的產(chǎn)品目錄系統(tǒng)

    摘要:因?yàn)樗麄兛赡軙?huì)有許多顧客對(duì)相同的商品目錄進(jìn)行多次請(qǐng)求。然而,對(duì)于我們的參考架構(gòu),我們想完全在中實(shí)現(xiàn)一個(gè)多方面搜索。 本文源地址:http://www.mongoing.com/blog/retail-reference-architecture-part-1 如今,產(chǎn)品目錄數(shù)據(jù)管理對(duì)零售商而言是一個(gè)非常復(fù)雜的問題。經(jīng)過多年對(duì)多個(gè)龐大、由供應(yīng)商提供的系統(tǒng)的依賴之后,零售商目前正在重新考...

    VincentFF 評(píng)論0 收藏0
  • 電商參考架構(gòu)第一部分:搭建一個(gè)靈活、可搜索、響應(yīng)快速的產(chǎn)品目錄系統(tǒng)

    摘要:因?yàn)樗麄兛赡軙?huì)有許多顧客對(duì)相同的商品目錄進(jìn)行多次請(qǐng)求。然而,對(duì)于我們的參考架構(gòu),我們想完全在中實(shí)現(xiàn)一個(gè)多方面搜索。 本文源地址:http://www.mongoing.com/blog/retail-reference-architecture-part-1 如今,產(chǎn)品目錄數(shù)據(jù)管理對(duì)零售商而言是一個(gè)非常復(fù)雜的問題。經(jīng)過多年對(duì)多個(gè)龐大、由供應(yīng)商提供的系統(tǒng)的依賴之后,零售商目前正在重新考...

    Gemini 評(píng)論0 收藏0
  • 阿里副總裁玄難:藏經(jīng)閣計(jì)劃首次在阿里應(yīng)用落地

    摘要:在全國(guó)知識(shí)圖譜與語義計(jì)算大會(huì)上,阿里巴巴集團(tuán)副總裁藏經(jīng)閣計(jì)劃阿里負(fù)責(zé)人墻輝玄難宣布藏經(jīng)閣計(jì)劃首次在阿里應(yīng)用落地,以及首次披露大規(guī)模知識(shí)構(gòu)建技術(shù)細(xì)節(jié),并從三個(gè)方面進(jìn)行了解讀。 2018年4月,阿里聯(lián)合清華大學(xué)、浙江大學(xué)、中科院自動(dòng)化所、中科院軟件所、蘇州大學(xué)等五家機(jī)構(gòu),聯(lián)合發(fā)布藏經(jīng)閣(知識(shí)引擎)研究計(jì)劃,同時(shí)還宣布打算用一年時(shí)間初步建成首個(gè)開放的知識(shí)引擎服務(wù)平臺(tái),服務(wù)社會(huì)。 在全國(guó)知識(shí)圖...

    CompileYouth 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<