国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

聯(lián)通營業(yè)廳做網(wǎng)站維護知乎營銷平臺

聯(lián)通營業(yè)廳做網(wǎng)站維護,知乎營銷平臺,為什么凡科網(wǎng)做的網(wǎng)站無法搜索,網(wǎng)站建設(shè)各個模塊的功能第6章 Elasticsearch,分布式搜索引擎【仿??途W(wǎng)社區(qū)論壇項目】 前言推薦項目總結(jié)第6章 Elasticsearch,分布式搜索引擎1.Elasticsearch入門2.Spring整合ElasticsearchDiscussPostRepositoryDiscussPostControllerEventConsumer 3.開發(fā)社區(qū)搜索功能 最后 前…

第6章 Elasticsearch,分布式搜索引擎【仿??途W(wǎng)社區(qū)論壇項目】

  • 前言
  • 推薦
  • 項目總結(jié)
  • 第6章 Elasticsearch,分布式搜索引擎
    • 1.Elasticsearch入門
    • 2.Spring整合Elasticsearch
      • DiscussPostRepository
      • DiscussPostController
      • EventConsumer
    • 3.開發(fā)社區(qū)搜索功能
  • 最后

前言

2023-4-30 20:42:51

以下內(nèi)容源自【Java面試項目】
僅供學習交流使用

推薦

仿??途W(wǎng)項目【面試】

項目總結(jié)

第6章 Elasticsearch,分布式搜索引擎

1.Elasticsearch入門

2.Spring整合Elasticsearch

導入依賴

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency>

DiscussPostRepository

package com.jsss.community.dao.elasticsearch;import com.jsss.community.entity.DiscussPost;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;/*
ElasticsearchRepository<DiscussPost, Integer>
DiscussPost:接口要處理的實體類
Integer:實體類中的主鍵是什么類型
ElasticsearchRepository:父接口,其中已經(jīng)事先定義好了對es服務(wù)器訪問的增刪改查各種方法。Spring會給它自動做一個實現(xiàn),我們直接去調(diào)就可以了。*/
@Repository
public interface DiscussPostRepository extends ElasticsearchRepository<DiscussPost, Integer> {}

DiscussPostController

發(fā)帖|刪帖的時候,放到kakfa中了

    @RequestMapping(path = "/add",method = RequestMethod.POST)@ResponseBodypublic String addDiscussPost(String title,String content){User user=hostHolder.getUser();if (user==null){return CommunityUtil.getJSONString(403,"你還沒有登錄");}DiscussPost post=new DiscussPost();post.setUserId(user.getId());post.setTitle(title);post.setContent(content);post.setCreateTime(new Date());discussPostService.addDiscussPost(post);//觸發(fā)發(fā)帖實踐Event event =new Event().setTopic(TOPIC_PUBLISH).setUserId(user.getId()).setEntityType(ENTITY_TYPE_POST).setEntityId(post.getId());eventProducer.fireEvent(event);String redisKey= RedisKeyUtil.getPostScoreKey();redisTemplate.opsForSet().add(redisKey,post.getId());//報錯的情況,將來統(tǒng)一處理return CommunityUtil.getJSONString(0,"發(fā)布成功!");}// 刪除@RequestMapping(path = "/delete", method = RequestMethod.POST)@ResponseBodypublic String setDelete(int id) {discussPostService.updateStatus(id, 2);// 觸發(fā)刪帖事件Event event = new Event().setTopic(TOPIC_DELETE).setUserId(hostHolder.getUser().getId()).setEntityType(ENTITY_TYPE_POST).setEntityId(id);eventProducer.fireEvent(event);return CommunityUtil.getJSONString(0);}

EventConsumer

    // 消費發(fā)帖事件@KafkaListener(topics = {TOPIC_PUBLISH})public void handlePublishMessage(ConsumerRecord record) {if (record == null || record.value() == null) {logger.error("消息的內(nèi)容為空!");return;}Event event = JSONObject.parseObject(record.value().toString(), Event.class);if (event == null) {logger.error("消息格式錯誤!");return;}DiscussPost post = discussPostService.findDiscussPostById(event.getEntityId());elasticsearchService.saveDiscussPost(post);}// 消費刪帖事件@KafkaListener(topics = {TOPIC_DELETE})public void handleDeleteMessage(ConsumerRecord record) {if (record == null || record.value() == null) {logger.error("消息的內(nèi)容為空!");return;}Event event = JSONObject.parseObject(record.value().toString(), Event.class);if (event == null) {logger.error("消息格式錯誤!");return;}elasticsearchService.deleteDiscussPost(event.getEntityId());}

3.開發(fā)社區(qū)搜索功能

ElasticsearchService

    public List<DiscussPost> searchDiscussPost(String keyword, int current, int limit) throws IOException {SearchRequest searchRequest = new SearchRequest("discusspost");//discusspost是索引名,就是表名NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();//高亮HighlightBuilder highlightBuilder = new HighlightBuilder();highlightBuilder.field("title");highlightBuilder.field("content");highlightBuilder.requireFieldMatch(false);highlightBuilder.preTags("<em>");highlightBuilder.postTags("</em>");//構(gòu)建搜索條件SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(QueryBuilders.multiMatchQuery(keyword, "title", "content")).sort(SortBuilders.fieldSort("type").order(SortOrder.DESC)).sort(SortBuilders.fieldSort("score").order(SortOrder.DESC)).sort(SortBuilders.fieldSort("createTime").order(SortOrder.DESC)).from(current)// 指定從哪條開始查詢.size(limit)// 需要查出的總記錄條數(shù).highlighter(highlightBuilder);//高亮searchRequest.source(searchSourceBuilder);//這有個異常SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);List<DiscussPost> list = new LinkedList<>();for (SearchHit hit : searchResponse.getHits().getHits()) {DiscussPost discussPost = JSONObject.parseObject(hit.getSourceAsString(), DiscussPost.class);// 處理高亮顯示的結(jié)果HighlightField titleField = hit.getHighlightFields().get("title");if (titleField != null) {discussPost.setTitle(titleField.getFragments()[0].toString());}HighlightField contentField = hit.getHighlightFields().get("content");if (contentField != null) {discussPost.setContent(contentField.getFragments()[0].toString());}
//            System.out.println(discussPost);list.add(discussPost);}return list;}

最后

2023-7-31 20:34:10

這篇博客能寫好的原因是:站在巨人的肩膀上

這篇博客要寫好的目的是:做別人的肩膀

開源:為愛發(fā)電

學習:為我而行

http://aloenet.com.cn/news/28024.html

相關(guān)文章:

  • 東莞網(wǎng)站維護網(wǎng)站制作費用一覽表
  • 廣安網(wǎng)站制作設(shè)計掃描圖片找原圖
  • 濟寧網(wǎng)站建設(shè)關(guān)鍵字是什么意思
  • 企業(yè)管理軟件是什么杭州seo博客
  • 微信網(wǎng)站制作價格競價防惡意點擊
  • 做爰視頻無風險網(wǎng)站廣告有限公司
  • 服裝店網(wǎng)站模板網(wǎng)站快速建站
  • 深圳龍崗網(wǎng)站維護阿里域名購買網(wǎng)站
  • 兩個人能用的一個公司做網(wǎng)站嗎怎樣注冊網(wǎng)站免費注冊
  • 貴陽網(wǎng)站建設(shè)制作成都最新消息今天
  • 做網(wǎng)站公司在深圳谷歌瀏覽器官方app下載
  • 安徽建設(shè)行業(yè)安全協(xié)會網(wǎng)站友情鏈接交易平臺
  • 社區(qū)電商網(wǎng)站設(shè)計磁力搜索引擎
  • 寧波公司網(wǎng)站開發(fā)推廣營銷是什么
  • 為什么做視頻網(wǎng)站違法礦產(chǎn)網(wǎng)站建設(shè)價格
  • 阿里云wordpress很慢找seo外包公司需要注意什么
  • 心雨在線高端網(wǎng)站建設(shè)關(guān)鍵詞分析軟件
  • 成都官方網(wǎng)站建設(shè)seo怎么做關(guān)鍵詞排名
  • 建立淘寶客網(wǎng)站福州短視頻seo網(wǎng)紅
  • 做外貿(mào)的網(wǎng)站怎么建立武漢seo網(wǎng)站排名優(yōu)化
  • 做理財?shù)木W(wǎng)站有哪些搜索引擎推廣方案
  • 網(wǎng)站建設(shè)多久可以建成seo是搜索引擎優(yōu)化
  • 四字母net做網(wǎng)站怎么樣競價推廣和信息流推廣
  • 比較大氣的網(wǎng)站深圳短視頻推廣
  • 邵陽網(wǎng)站建設(shè)推廣域名權(quán)重
  • 視頻網(wǎng)站的服務(wù)器建設(shè)百度熱搜榜小說排名
  • 委托網(wǎng)站建設(shè)注意什么個人如何推廣app
  • asp.net視頻網(wǎng)站模板下載站長網(wǎng)站工具
  • 產(chǎn)品宣傳類網(wǎng)站設(shè)計互聯(lián)網(wǎng)推廣公司靠譜嗎
  • php網(wǎng)站開發(fā)套模板步驟打開百度首頁