1. 程式人生 > >實戰day09(二)----新增商品同步索引庫

實戰day09(二)----新增商品同步索引庫

dao層的方法新增



建立監聽器


package cn.e3mall.search.message;

import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.common.SolrInputDocument;
import org.springframework.beans.factory.annotation.Autowired;

import cn.e3mall.common.pojo.SearchItem;
import cn.e3mall.search.mapper.ItemMapper;

/**
 * 監聽商品新增訊息,接收訊息後,將對應的商品資訊同步到索引庫
 *
 */
public class ItemAddMessageListener implements MessageListener {

	@Autowired
	private ItemMapper ItemMapper;

	@Autowired
	private SolrServer solrServer;

	@Override
	public void onMessage(Message message) {
		try {
			// 從訊息中取商品id
			TextMessage textMessage = (TextMessage) message;
			String text = textMessage.getText();
			Long itemId = new Long(text);
			//等待事務提交
			Thread.sleep(100);
			// 根據商品id查詢商品資訊
			SearchItem searchItem = ItemMapper.getItemById(itemId);
			// 建立一個文件物件
			SolrInputDocument document = new SolrInputDocument();
			// 向文件物件中新增域
			document.addField("id", searchItem.getId());
			document.addField("item_title", searchItem.getTitle());
			document.addField("item_sell_point", searchItem.getSell_point());
			document.addField("item_price", searchItem.getPrice());
			document.addField("item_image", searchItem.getImage());
			document.addField("item_category_name", searchItem.getCategory_name());
			// 把文件寫入索引庫
			solrServer.add(document);
			// 提交
			solrServer.commit();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

配置




業務層,



測試:

新增商品


搜尋商品



相關推薦

實戰day09----新增商品同步索引

dao層的方法新增建立監聽器package cn.e3mall.search.message; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage;

實戰演練:執行20小時的報表SQL優化後秒出

一、概述 這是我們SQL優化班的一個學員,據說該SQL在生產環境中已經運行了20個小時,快把伺服器的磁碟資源耗盡了。這20個小時,我們可愛的學員就是靠著刪除一些不重要的檔案才能夠勉強度過。  據瞭解,該SQL為一個月執行一次的跑報表的SQL,主要問題是隨著SQL的執行時間越來越長,所需

ASP.NETCore MVC 和 Visual Studio入門新增控制器

ASP.NETCore MVC 和 Visual Studio入門(二)  新增控制器 Rick Anderson     Model-View-Controller(MVC) 結構模式將一個應用分離為三個主要部分:模型(M)、檢視(V)和控制器

Python3爬蟲入門實戰系列爬取貓眼電影排行榜

在進行本節實戰之前,希望您對requests庫以及正則表示式有所瞭解。 執行平臺:windows Python版本: Python3.x 一、依賴庫的安裝 在本節實戰之前,請確保已經正確安裝了requests庫 requests庫的安裝 pip3 instal

.Net Core 在 Linux-Centos上的部署實戰教程

上篇我們說了 如何在Linux上部署.net core  但是有心的同學會發現你關閉掉終端網站就不能訪問了,這個原因是因為直接 dotnet GetConfigFile.dll --server.urls http://*:5000 這麼執行不是後臺執行,我們讓他後臺執行就可以了 使用nohup設

Flutter 擴充套件NestedScrollView 列表滾動同步解決

接著上篇,沒看上篇的小夥伴建議先看下上篇,免得斷片中。。 我繼續講下第2個問題的解決方案。 當在裡面放上tabview,並且tab是快取狀態的時候,會出現滾動會互相影響的問題 上篇我們說到 在我們的主角NestedScrollView當中,有2個ScrollController. class _Nes

MySql必知必會實戰練習資料過濾 MySql必知必會實戰練習資料檢索

  在之前的部落格MySql必知必會實戰練習(一)表建立和資料新增中完成了各表的建立和資料新增,MySql必知必會實戰練習(二)資料檢索中介紹了所有的資料檢索操作,下面對資料過濾操作進行總結。 1. where子句操作符   等於: =    不等於: != 或 <>   小於:

實戰演練

數字重複統計 1).隨機生成1000個整數 2).數字的範圍[20,100] 3).升序輸出所有不同的數字及其每個數字重複的次數 import random num_li = [] i = 0 while i <= 1000: add_num = random.rand

Java 由淺入深GUI程式設計實戰練習

一,專案簡介 1.利用Java GUI 繪製圖像介面,設定整體佈局 2.編寫一個隨機數生成1~100的隨機數 3.編寫一個驗證類,用於驗證使用者輸入值與生成隨機數是否相等並記錄使用者猜測次數,當用戶猜測成功或者超過5次結束遊戲 二,執行介面 三,程式碼實現 import java.awt

實戰ELK6使用logstash同步mysql資料到ElasticSearch

一、準備 1、mysql 我這裡準備了個數據庫mysqlEs,表User 結構如下 新增幾條記錄 2、建立elasticsearch索引 curl -XPUT 'localhost:9200/user?pretty' 3、準備mysql-connector 下載地址為ht

從0到1學習Vue.js,包含例子及實戰專案

上一篇文章中,我們初步瞭解單頁面元件這個概念,現在通過一個專案,來進一步解析元件的應用。 需求背景 元件庫是做UI和前端日常需求中經常用到的,把一個按鈕,導航,列表之類的元素封裝起來,方便日常使用,呼叫方法只需直接寫上<qui-button><

【C++併發實戰執行緒管理

前一篇沒用markdown編輯器感覺不好看,刪了重新發 本篇主要講述執行緒的管理,主要包括建立和使用執行緒 啟動執行緒 執行緒出現是為了執行任務,執行緒建立時會給一個入口函式,當這個函式返回時,該執行緒就會退出,最常見的main()函式就是主執行緒的入口函式,在main()函式返回時主執行緒就結束了。 如

Netty實戰手冊

  本篇主要講述通過JSTS整合的Netty構建一個的遊戲伺服器結構,然後你可以在其中擴充套件你需要的內容。下面請跟隨我將講述JSTS的用法,其中你可以瞭解Netty和Spring的一些用法,並可以在專案中進行實踐。 一、基礎配置   首先,我們構建一個Maven專案

Sping Boot入門到實戰實戰:一些常用功能的Spring Boot Starters

包含功能 阿里雲訊息服務MNS 阿里雲訊息佇列服務(即時訊息、延遲訊息、事務訊息) AOP日誌 基於MyBatis通用Mapper及DRUID的資料庫訪問 dubbo支援 錯誤處理 七牛圖片服務 redis多連線池支援 swagger配置 跨域配置 原始碼地址:https://github.com/ron

java1.8實戰學習——總結:流處理、行為引數化、並行與共享

上一篇:java1.8實戰學習(一) 下一篇:java1.8實戰學習(三) 我們繼續來看 預設方法 在加入所有這些新玩意兒改進Java 的時候, Java 8 設計者發現的一個現實問題就是現有的介面也在改進。比如, Collections.sort方法真的應該屬於Lis

dokuwiki學習——新增頁面文章

    剛才新建頁面的方式,是通過在dokuwiki的程式碼端進行新增,對於普通使用者來說,不可能有許可權去操作。Dokuwiki提供了豐富的外掛進行自定義擴充套件。只要安裝一個外掛即可。在管理—擴充套件管理器,搜尋外掛Add New Page Plugin即可

微服務架構實戰:Spring boot2.0 + Swagger2 讓你的API視覺化

簡介 該專案主要利用Spring boot2.0 +Swagger2 方便進行測試後臺的restful形式的介面,實現動態的更新,當我們在後臺的介面修改了後,swagger可以實現自動的更新,而不需要認為的維護這個介面進行測試。 原始碼地址 GitHub:https:

入門Python資料分析最好的實戰專案建模篇

作者:xiaoyu 微信公眾號:Python資料科學 知乎:python資料分析 上一篇和大家分享了一個入門資料分析的一個小專案 北京二手房房價分析,連結如下: 資料分析實戰—北京二手房房價分析 文章在sf釋出之後看到有不少感興趣的朋友給我點了贊,感謝

java高併發實戰程式設計

一:倒計時器:countDownLatch       countDownLatch是一個實用的多執行緒控制工具類。又稱為倒計時器,通常用來控制執行緒等待,可以讓某一個執行緒等待直到倒計時結束,再開始執行。       解釋:也就是

Flask專案之手機端租房網站的實戰開發

說明:該篇部落格是博主一字一碼編寫的,實屬不易,請尊重原創,謝謝大家! 接著上一篇部落格繼續往下寫 :https://blog.csdn.net/qq_41782425/article/details/85613780 目錄 一丶建立專案 二丶建立工程目錄(拆分manage.py