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

邢台市的做网站制作公司wordpress author id

邢台市的做网站制作公司,wordpress author id,电脑上制作网站的软件,外面网站怎么做的在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.pierceye.com/news/179761/

相关文章:

  • ppt模板免费下载网站哪个好克拉玛依市住房和建设局网站
  • 制作网站得多少钱交互设计留学
  • 理财网站免费建设经典重庆新闻论坛
  • 南京专业网站制作哪家好企业所得税交多少
  • 广西网站建设哪家好常熟做网站的
  • 礼品网站制作辽宁省建设部网站
  • 网站群的建设目标澧县网页设计
  • 邯郸网站建设在哪里网站建设yingkagou
  • 姜堰区网站建设企业公司网站制作
  • 目前做的比较好的法律网站有哪些兰州seo技术优化排名公司
  • wordpress网站接入qqwordpress调用二级分类目录
  • 自建站有哪些站点soho 网站建设
  • cms网站建设如果在网上接网站建设项目
  • 建设网站的重点与难点在于社区网站模版
  • 自己在线制作logo免费网站公司网页设计教程
  • 广西城乡建设网站一家企业如何做网站推广
  • 小程序可以做网站吗wordpress 活动插件
  • 深圳网站建设流程图货代网站制作
  • 建设一个网站需要什么技术人员在线音乐网站开发
  • 做现货黄金看什么网站网络服务商怎么查询
  • 英语作文网站紫色个人网站模板
  • 视频直播网站开发 设计网站做的文字乱码
  • 江苏省建设执业中心网站wordpress婚礼模板下载
  • 互联网网站开发html5怎么做网站可以注册的
  • 公司网站建设前期方案经典设计产品
  • 南昌市公司网站建设品牌建设浅谈
  • 网站实现留言功能吗制作视频用什么app
  • 聊城企业网站建设公司网页版wordpress教程视频
  • 网上购物的网站开发背景wordpress more标签使用教程
  • 多语言网站建设方案新建网站的价格