日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SolrJ商品搜索实现

發布時間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SolrJ商品搜索实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

商品搜索

Dao

業務邏輯
1、根據Query對象進行查詢
2、返回查詢結果,包括List、查詢結果的總記錄數

@Repository public class SearchDao {@Autowiredprivate SolrServer solrServer;public SearchResult search(SolrQuery query) throws Exception{//根據query對象進行查詢QueryResponse response = solrServer.query(query);//取查詢結果SolrDocumentList solrDocumentList = response.getResults();//取查詢結果總記錄數long numFound = solrDocumentList.getNumFound();SearchResult result = new SearchResult();result.setRecordCount(numFound);List<SearchItem> itemList = new ArrayList<>();//把查詢結果封裝到SearchItem對象中for (SolrDocument solrDocument : solrDocumentList) {SearchItem item = new SearchItem();item.setCategory_name((String) solrDocument.get("item_category_name"));item.setId((String) solrDocument.get("id"));//取一張圖片String image = (String) solrDocument.get("item_image");if (StringUtils.isNotBlank(image)) {image = image.split(",")[0];}item.setImage(image);item.setPrice((long) solrDocument.get("item_price"));item.setSell_point((String) solrDocument.get("item_sell_point"));//取高亮顯示Map<String, Map<String, List<String>>> highlighting = response.getHighlighting();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");}item.setTitle(title);//添加到商品列表itemList.add(item);}//把結果添加到SearchResult中result.setItemList(itemList);//返回return result;} }

Service

業務邏輯
1、創建一個SolrQuery對象
2、設置查詢條件
3、設置分頁條件
4、需要指定默認搜索域
5、設置高亮
6、執行查詢,調用SearchDao。得到SearchResult
7、需要計算總頁數
8、返回SearchResult

@Service public class SearchServiceImpl implements SearchService {@Autowiredprivate SearchDao searchDao;@Overridepublic SearchResult search(String queryString, int page, int rows) throws Exception {//根據查詢條件拼裝查詢對象//創建一個SolrQuery對象SolrQuery query = new SolrQuery();//設置查詢條件query.setQuery(queryString);//設置分頁條件if (page < 1) page =1;query.setStart((page - 1) * rows);if (rows < 1) rows = 10;query.setRows(rows);//設置默認搜索域query.set("df", "item_title");//設置高亮顯示query.setHighlight(true);query.addHighlightField("item_title");query.setHighlightSimplePre("<font color='red'>");query.setHighlightSimplePost("</font>");//調用dao執行查詢SearchResult searchResult = searchDao.search(query);//計算查詢結果的總頁數long recordCount = searchResult.getRecordCount();long pages = recordCount / rows;if (recordCount % rows > 0) {pages++;}searchResult.setTotalPages(pages);//返回結果return searchResult;} }

Controller

業務邏輯
1、接收參數
2、調用服務查詢商品列表
3、把查詢結果傳遞給頁面,需要參數回顯

@Controller public class SearchController {@Autowiredprivate SearchService searchService;@Value("${SEARCH_RESULT_ROWS}")private Integer SEARCH_RESULT_ROWS;@RequestMapping("/search")public String search(@RequestParam("q") String queryString, @RequestParam(defaultValue = "1") Integer page,Model model) throws Exception {// int a = 1/0;// 調用服務執行查詢// 把查詢條件進行轉碼,解決get亂碼問題queryString = new String(queryString.getBytes("iso8859-1"), "utf-8");SearchResult searchResult = searchService.search(queryString, page, SEARCH_RESULT_ROWS);// 把結果傳遞給頁面model.addAttribute("query", queryString);model.addAttribute("totalPages", searchResult.getTotalPages());model.addAttribute("itemList", searchResult.getItemList());model.addAttribute("page", page);// 返回邏輯視圖return "search";} }

如果,是Dubbo分布式服務
Service需要發布服務

<!-- 聲明需要暴露的服務接口 --> <dubbo:service interface="com.taotao.search.service.SearchService" ref="searchServiceImpl" timeout="300000"/>

Web引用服務

<!-- 引用dubbo服務 --> <dubbo:application name="taotao-search-web"/> <dubbo:registry protocol="zookeeper" address="192.168.25.167:2181"/> <dubbo:reference interface="com.taotao.search.service.SearchService" id="searchService" />

總結

以上是生活随笔為你收集整理的SolrJ商品搜索实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费看a级黄色片 | 爱爱精品视频 | 天天干视频在线 | аⅴ资源新版在线天堂 | 永久黄色网址 | 婷婷久久久 | 国产欧美一区二区精品忘忧草 | 欧美一区精品 | 色噜噜狠狠狠综合曰曰曰 | 99视屏 | 日韩欧美自拍 | 国产 日韩 欧美 成人 | 综合网久久 | 一区二区一级片 | 国产精品人妻 | 99re国产精品| 四虎av影院| 18男女无套免费视频 | 日批网址 | 麻豆成人精品 | 六月丁香激情 | 欧美日韩网站 | 91精品一区二区 | jizz日本少妇| 日产毛片 | 国产女人18毛片水真多18 | 国产不卡视频一区二区三区 | 日本成人在线网站 | 午夜免费看视频 | www.成年人| 亚洲手机在线观看 | 日一日干一干 | 秋霞福利影院 | 日本一区二区三区四区五区 | 少妇与公做了夜伦理 | 亚洲av无码日韩精品影片 | 欧美浪妇xxxx高跟鞋交 | 在线aaa| 91久久精品一区二区三 | 亚洲综合一二三 | 国产精品无码一区二区三区在线看 | 边打电话边做 | 狠狠鲁影院 | a视频免费在线观看 | 国产 欧美 自拍 | 在线亚洲网站 | 国产精美视频 | 欧美阿v| 五月天色综合 | 自拍偷拍校园春色 | 中文字幕在线播放一区二区 | 成人久久久精品乱码一区二区三区 | 香蕉毛片| 伊人影视大全 | 91免费精品 | 成人黄性视频 | www欧美精品| www.狠狠干| 在线成人中文字幕 | 少妇高潮一区二区三区99刮毛 | 国产精品无码人妻一区二区在线 | 狠狠干快播 | 91传媒理伦片在线观看 | 狠狠撸在线视频 | 伊人久久大香线 | 在线视频欧美亚洲 | 久久av高潮av无av萌白 | 一级免费黄色大片 | 亚洲精品毛片av | 相亲对象是问题学生在线观看 | 国产精品天天av精麻传媒 | 麻豆视频传媒入口 | 国产一区二区毛片 | 影音av在线 | 亚洲免费一区二区 | 伊人69| 第一av | 国产精品成人一区二区三区 | 黄毛片在线观看 | 青青操视频在线播放 | 国产专区av | 91视频插插插 | 亚洲一区二区三区四区五区六区 | 网爆门在线 | 日韩在线观看中文字幕 | av老司机久久 | 91超碰在 | 91久久网| 免费久久精品 | 国产精品第八页 | 人妻射精一区二区 | 九九在线精品视频 | 99re国产 | 中文字幕第66页 | 日本免费三片在线播放 | 色偷偷成人| 中文字幕在线视频网站 | 欧美日韩一区二区三区四区 | 精品久久国产字幕高潮 |