当前位置: 首页 > news >正文

什么软件可以建网站临沂专业网站制作

什么软件可以建网站,临沂专业网站制作,网站制作q,wp wordpress在springboot中集成Elasticsearch#xff0c;以我开发的博客系统项目为例,这是一篇文章内容。 准备 本次Elasticsearch使用的是单机版#xff0c;版本为6.7.8#xff0c;并且装好中文分词器。 Springboot集成Elasticsearch 首先在pom文件中引入Elasticsearch依赖。 !-…在springboot中集成Elasticsearch以我开发的博客系统项目为例,这是一篇文章内容。 准备 本次Elasticsearch使用的是单机版版本为6.7.8并且装好中文分词器。 Springboot集成Elasticsearch 首先在pom文件中引入Elasticsearch依赖。 !--elasticsearch--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-elasticsearch/artifactId/dependency创建一个对象与数据库存储结构字段对应使用Data是导入了lombok Document(indexName “article_document”, type “docs”, shards 1, replicas 0)这个注解会在elasticsearch里面创建一个article_document的索引。Id 注解为elasticsearch的id字段。 类型type 每个文档都有与之对应的类型type定义。这允许用户在一个索引中存储多种文档类型并为不同文档提供类型提供不同的映射。 分片shards# 代表索引分片es可以把一个完整的索引分成多个分片这样的好处是可以把一个大的索引拆分成多个分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定并且索引创建后不能更改。5.X默认不能通过配置文件定义分片 副本replicas# 代表索引副本es可以设置多个索引的副本副本的作用一是提高系统的容错性当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率es会自动对搜索请求进行负载均衡。 Data Document(indexName article_document, type docs, shards 1, replicas 0) public class ArticleDocument implements Serializable {Idprivate Long id;Field(type FieldType.Text, analyzer ik_max_word)private String title; //标题Field(type FieldType.Text, analyzer ik_max_word)private String summary;// 概述Field(type FieldType.Text, analyzer ik_max_word)private String content; // 内容Field(type FieldType.Boolean)private Boolean published;//是否已发布Field(type FieldType.Integer)private Integer status;//审核状态public interface Table {String ID id;String TITLE title;String SUMMARY summary;String CONTENT content;String PUBLISHED published;String STATUS status;} }写一个接口ArticleDocumentRepository继承ElasticsearchRepositoryElasticsearchRepository包含了基本的增删改查的能力并在接口类上加上Repository注解注入到spring 容器中. Repository public interface ArticleDocumentRepository extends ElasticsearchCrudRepositoryArticleDocument, Long {ListArticleDocument findDistinctByTitleLikeOrSummaryLikeOrContentLike(String title, String summary, String content); } ArticleDocumentServiceImpl类自动注入ArticleDocumentRepository的接口去操作Elasticsearch。 Autowiredprivate ArticleDocumentRepository articleDocumentRepository;接着就对Elasticsearch进行增删改查的操作。 保存 我是用了mybatis-plus可以根据自己修改在保存文章的时候调用这个方法Article是我的文章对象。 public void saveToElasticSearch(Article article) {ArticleDocument articleDocument new ArticleDocument();BeanUtils.copyProperties(article, articleDocument);if (articleDocument.getPublished() null) {QueryWrapperArticle wrapper new QueryWrapper();wrapper.select(Article.Table.PUBLISHED).eq(Article.Table.ID, article.getId());Article temp articleMapper.selectOne(wrapper);articleDocument.setPublished(temp.getPublished());}if (articleDocument.getStatus() null) {QueryWrapperArticle wrapper new QueryWrapper();wrapper.select(Article.Table.STATUS).eq(Article.Table.ID, article.getId());Article temp articleMapper.selectOne(wrapper);articleDocument.setStatus(temp.getStatus());}articleDocumentRepository.save(articleDocument);}更新 先将原来的索引删除掉 //从ElasticSearch中删除articleDocumentRepository.deleteById(article.getId());再保存新的索引 saveToElasticSearch(article);删除 articleDocumentRepository.deleteById(article.getId());查询 将查询的结果用List返回。 public ListArticleDocument listByKeyword(String keyword) throws IOException {SearchRequest searchRequest new SearchRequest(TableConstant.ARTICLE_DOCUMENT);//匹配查询SearchSourceBuilder sourceBuilder new SearchSourceBuilder();MultiMatchQueryBuilder multiMatchQueryBuilder QueryBuilders.multiMatchQuery(keyword, ArticleDocument.Table.TITLE, ArticleDocument.Table.SUMMARY, ArticleDocument.Table.CONTENT);TermQueryBuilder termQueryBuilder1 QueryBuilders.termQuery(ArticleDocument.Table.PUBLISHED, true);TermQueryBuilder termQueryBuilder2 QueryBuilders.termQuery(ArticleDocument.Table.STATUS, Constant.AUDIT_PASS);BoolQueryBuilder boolQueryBuilder QueryBuilders.boolQuery().must(multiMatchQueryBuilder).must(termQueryBuilder1).must(termQueryBuilder2);sourceBuilder.query(boolQueryBuilder);//高亮HighlightBuilder highlightBuilder new HighlightBuilder();highlightBuilder.field(ArticleDocument.Table.TITLE).field(ArticleDocument.Table.SUMMARY).field(ArticleDocument.Table.CONTENT);highlightBuilder.preTags(Constant.HIGH_LIGHT_PRE_TAGS);highlightBuilder.postTags(Constant.HIGH_LIGHT_POST_TAGS);sourceBuilder.highlighter(highlightBuilder);//执行搜索searchRequest.source(sourceBuilder);SearchResponse searchResponse restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);//解析结果ListArticleDocument articleDocuments new ArrayList();for (SearchHit hit : searchResponse.getHits().getHits()) {MapString, Object map hit.getSourceAsMap();//原来的结果//解析高亮的字段HighLightUtil.parseField(hit, ArticleDocument.Table.TITLE);HighLightUtil.parseField(hit, ArticleDocument.Table.SUMMARY);HighLightUtil.parseField(hit, ArticleDocument.Table.CONTENT);ArticleDocument articleDocument new ArticleDocument();articleDocument.setId(Long.valueOf((Integer) map.get(ArticleDocument.Table.ID)));articleDocument.setTitle((String) map.get(ArticleDocument.Table.TITLE));articleDocument.setSummary((String) map.get(ArticleDocument.Table.SUMMARY));articleDocument.setContent((String) map.get(ArticleDocument.Table.CONTENT));articleDocuments.add(articleDocument);}return articleDocuments;}elasticsearch有一个高亮配置HighLightUtil可以使关键词高亮显示。 import org.elasticsearch.common.text.Text; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.fetch.subphase.highlight.HighlightField;import java.util.Map;public class HighLightUtil {public static void parseField(SearchHit hit, String field) {MapString, Object map hit.getSourceAsMap();//原来的结果HighlightField title hit.getHighlightFields().get(field);//解析高亮的字段if (title ! null) {Text[] fragments title.fragments();StringBuilder newTitle new StringBuilder();for (Text fragment : fragments) {newTitle.append(fragment);}//高亮文本替换掉原来的内容map.put(field, newTitle.toString());}}我们可以看到这里我使用的是谷歌商城的ElasticSearch Heap这个插件非常方便。 有什么问题可以再评论区评论我会尽快回复。 参考文章https://blog.csdn.net/forezp/article/details/106839262
http://www.zqtcl.cn/news/855932/

相关文章:

  • 网络营销创意案例桂林seo公司推荐23火星
  • 网站开发知识产权归属问题wordpress会计模板下载
  • 昆明网站的优化自媒体是干什么的
  • 大成建设株式会社网站删掉wordpress主题
  • 个人网站备案类型网络维护培训班
  • 做网站的可以注册个工作室吗一个网站两个域名吗
  • 网站建设要准备什么资料网站建设 锐颖科技
  • 如何建设网站山东济南兴田德润官网电子商城官网
  • 网站如何做支付宝接口免费ppt自动生成器
  • 泰安市建设职工培训中心网站官网seo经理招聘
  • 湛江做网站seo网站建设 0551
  • 建站公司 深圳苏州建站公司
  • 网站怎么做引流呢济南网站微信
  • 一个域名可以做几个网站吗wordpress左右翻转页面
  • 天津人工智能建站系统软件wordpress主题没有小工具
  • 网站的备案流程图视频制作素材
  • 劳务公司网站建设方案建设促销网站前的市场分析
  • 网络营销优化培训网站seo置顶 乐云践新专家
  • 小说网站搭建教程wordpress后台图片
  • 付网站开发费计入什么科目网站开发的历史
  • 站长素材ppt模板免费下载网站开发视频教程迅雷下载
  • 建设一个网站怎么赚钱南京江北新区房价走势最新消息
  • 一个网站怎么做软件下载互联网投放渠道有哪些
  • 手机网站建设进度环境设计排版素材网站
  • 网站开发众筹地推网推平台
  • 长沙互联网网站建设wordpress标签id在哪里修改
  • 企业网站的建设 摘要大连网站设计策划
  • 做房地产一级市场的看什么网站网络营销外包推广方式
  • 网站建设基本流程包括哪几个步骤网站建设策划书网站发布与推广
  • 徐州整站优化手机网页端