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

怎么建立一个网站让百度搜到微信社群营销推广方案

怎么建立一个网站让百度搜到,微信社群营销推广方案,the7 wordpress,网站用户需求Elasticsearch 概念 入门学习: Index索引MySQL 里的表(table)建表、增删改查(查询需要花费的学习时间最多)用客户端去调用 ElasticSearch(3 种)语法:SQL、代码的方法(4 种语法) ES 相比于 MySQL#xff0c;能够自动帮我们做分词#xff0c;能够非常高效、灵活地查询内…Elasticsearch 概念 入门学习: Index索引MySQL 里的表(table)建表、增删改查(查询需要花费的学习时间最多)用客户端去调用 ElasticSearch(3 种)语法:SQL、代码的方法(4 种语法) ES 相比于 MySQL能够自动帮我们做分词能够非常高效、灵活地查询内容。 索引(倒排索引) 正向索引:理解为书籍的目录可以快速帮你找到对应的内容(怎么根据页码找到文章) 倒排索引:怎么根据内容找到文章 文章 A: 你好我是 rapper 文章 B: 苏麟暴打小杨科 切词 : 词id你好文章 A 我 文章 Arapper文章 A苏麟文章 B暴打文章 B杨科文章 B 用户搜索 : 苏麟杨科 ES切词 : 苏麟 , 杨科 然后去倒排索引表找对应的文章 ES 的几种调用方式 1) restful api 调用(http 请求) GET请求 : localhost:9200 curl 可以模拟发送请求: curl -XGETlocalhost:9200/?pretty ES 的启动端口 1.9200:给外部用户(给客户端调用)的端口 2.9300:给 ES 集群内部通信的(外部调用不了的) 2) kibana devtools 自由地对 ES 进行操作(本质也是 restful api) devtools 不建议生产环境使用 3)客户端调用 java 客户端、go 客户端等。 参考文档 : Getting started | Elasticsearch Java API Client [7.17] | Elastic ES 的语法 DSL json 格式好理解;和 http 请求最兼容应用最广 建表,插入数据  (文档就是MySQL里的表,映射就是MySQL里的字段) post 就相当于表名  , title 和 content 就相当于字段 POST post/_doc {title:苏麟,content:苏麟暴打小杨科 } 有 successful 就代表存入成功了  查询 DSL (不要背) : Query DSL | Elasticsearch Guide [7.17] | Elastic 查询全部  GET post/_search {query: {match_all: {}} } 根据 id 查询  GET post/_doc/UBHryo0B5ErW0HhSBc0q修改 根据 id 修改 POST post/_doc/UBHryo0B5ErW0HhSBc0q {title:杨科,content:杨科委委屈屈! } 删除 根据文档删除 DELETE post EQL 专门查询 ECS 文档(标准指标文档)的数据的语法更加规范但只适用于特定场景(比如事件流) 文档 : EQL search | Elasticsearch Guide [7.17] | Elastic 建表,插入 POST post_my/_doc {title: 苏麟爱看美女,timestamp: 2099-05-06T16:21:15.000Z,event: {original: 192.0.2.42 - - [06/May/2099:16:21:15 0000] \GET /images/bg.jpg HTTP/1.0\ 200 24736} } 查询 GET post_my/_search {query: {match_all: { }},sort: [{timestamp: desc}] } SQL 文档 : Getting Started with SQL | Elasticsearch Guide [7.17] | Elastic 查询 POST /_sql?formattxt {query: SELECT * FROM post } Painless Scripting language 编程式取值更灵活但是学习成本高 Mapping 文档 : Explicit mapping | Elasticsearch Guide [7.17] | Elastic 可以理解为数据库的表结构有哪些字段、字段类型, ES 支持动态 mapping表结构可以动态改变而不像 MySQL 一样必须手动建表没有的字段就不能插入。 GET user/_mappingPUT /user {mappings: {properties: {age: { type: integer }, email: { type: keyword }, name: { type: text } }} } 分词器 指定了分词的规则。 内置分词器 : Built-in analyzer reference | Elasticsearch Guide [7.17] | Elastic 示例 :  空格分词器: whitespace结果The、quick、brown、fox. POST _analyze {analyzer: whitespace,text: The quick brown fox. } 标准分词规则结果:is、this、deja、vu POST _analyze {tokenizer: standard,filter: [ lowercase, asciifolding ],text: Is this déja vu? } 关键词分词器:就是不分词整句话当作专业术语 GET _analyze {analyzer: keyword, text: Is this sl? } 打分机制 比如有3条内容: 1.苏麟是gay 2.苏麟暴打小杨科 3.小杨科 用户搜索: 1.杨科第三条分数最高因为第三条匹配了关键词而且更短(匹配比例更大) 2.苏麟   苏麟是gay  苏麟暴打小杨科 , 排序结果 1  2 参考文章 : Controlling Relevance | Elasticsearch: The Definitive Guide [master] | Elastic Java 操作 ES 3 种方式: 1) ES 官方的 Java API 文章 : Introduction | Elasticsearch Java API Client [7.17] | Elastic 快速开始 : Connecting | Elasticsearch Java API Client [7.17] | Elastic 2) ES 以前的官方 Java APl,HighLevelRestclient(已废弃不建议用) 3) Spring Data Elasticsearch(推荐) spring-data 系列:spring 提供的操作数据的框架 spring-data-redis:操作 redis 的-套方法 spring-data-mongodb:操作 mongodb 的一套方法 spring-data-elasticsearch:操作 elasticsearch 的一套方法 ... 建表结构: aliases 起别名 PUT post_v1 {aliases: {post: {}},mappings: {properties: {title: {type: text,analyzer: ik_max_word,search_analyzer: ik_smart,fields: {keyword: {type: keyword,ignore_above: 256}}},content: {type: text,analyzer: ik_max_word,search_analyzer: ik_smart,fields: {keyword: {type: keyword,ignore_above: 256}}},tags: {type: keyword},thumbNum: {type: long},favourNum: {type: long},userId: {type: keyword},createTime: {type: date},updateTime: {type: date},isDelete: {type: keyword}}} } 增删改查 第一种方式: ElasticsearchRepositoryxxxx, Long默认提供了简单的增删改查多用于可预期的、相对没那么复杂的查询、自定义查询返回结果相对简单直接。 有一些现成的方法可以使用 // // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) //package org.springframework.data.repository;import java.util.Optional;NoRepositoryBean public interface CrudRepositoryT, ID extends RepositoryT, ID {S extends T S save(S entity);S extends T IterableS saveAll(IterableS entities);OptionalT findById(ID id);boolean existsById(ID id);IterableT findAll();IterableT findAllById(IterableID ids);long count();void deleteById(ID id);void delete(T entity);void deleteAllById(Iterable? extends ID ids);void deleteAll(Iterable? extends T entities);void deleteAll(); }第二种方式: Spring 默认给我们提供的操作 es 的客户端对象 ElasticsearchRestTemplate也提供了增删改查它的增删改查更灵活适用于更复杂的操作返回结果更完整但需要自己解析。 准备工作 package com.yupi.springbootinit.model.dto.post;import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; import com.yupi.springbootinit.model.entity.Post; import lombok.Data;import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType;import java.io.Serializable; import java.util.Date; import java.util.List;/*** 帖子 ES 包装类***/ Document(indexName post) Data public class PostEsDTO implements Serializable {private static final String DATE_TIME_PATTERN yyyy-MM-ddTHH:mm:ss.SSSZ;/*** id*/Idprivate Long id;/*** 标题*/private String title;/*** 内容*/private String content;/*** 标签列表*/private ListString tags;/*** 创建用户 id*/private Long userId;/*** 创建时间*/Field(index false, store true, type FieldType.Date, format {}, pattern DATE_TIME_PATTERN)private Date createTime;/*** 更新时间*/Field(index false, store true, type FieldType.Date, format {}, pattern DATE_TIME_PATTERN)private Date updateTime;/*** 是否删除*/private Integer isDelete;private static final long serialVersionUID 1L;/*** 对象转包装类** param post* return*/public static PostEsDTO objToDto(Post post) {if (post null) {return null;}PostEsDTO postEsDTO new PostEsDTO();BeanUtils.copyProperties(post, postEsDTO);String tagsStr post.getTags();if (StringUtils.isNotBlank(tagsStr)) {postEsDTO.setTags(JSONUtil.toList(tagsStr, String.class));}return postEsDTO;}/*** 包装类转对象** param postEsDTO* return*/public static Post dtoToObj(PostEsDTO postEsDTO) {if (postEsDTO null) {return null;}Post post new Post();BeanUtils.copyProperties(postEsDTO, post);ListString tagList postEsDTO.getTags();if (CollUtil.isNotEmpty(tagList)) {post.setTags(JSONUtil.toJsonStr(tagList));}return post;} }public interface PostEsDao extends ElasticsearchRepositoryPostEsDTO, Long {} Resourceprivate PostEsDao postEsDao; 测试  Testvoid testAdd() {PostEsDTO postEsDTO new PostEsDTO();postEsDTO.setId(1L);postEsDTO.setTitle(苏麟);postEsDTO.setContent(风雨交加的夜晚,苏麟暴打小杨科,小杨科奄奄一息);postEsDTO.setTags(Arrays.asList(苏麟, 杨科,暴打));postEsDTO.setUserId(1L);postEsDTO.setCreateTime(new Date());postEsDTO.setUpdateTime(new Date());postEsDTO.setIsDelete(0);postEsDao.save(postEsDTO);System.out.println(postEsDTO.getId());} DSL  查询结果 查询结果 Testvoid testFindById() {OptionalPostEsDTO postEsDTO postEsDao.findById(1L);System.out.println(postEsDTO);} DSL 查询转换 Java 代码查询 DSL 查询  文档 : Query and filter context | Elasticsearch Guide [7.17] | Elastic 文档 : Boolean query | Elasticsearch Guide [7.17] | Elastic GET post/_search {query: { bool: { //组合条件must: [ //必须满足{ match: { title: 苏麟 }}, //match 模糊查询{ match: { content: 苏麟 }}],filter: [ //过滤{ term: { status: published }}, //term 精确查询{ range: { publish_date: { gte: 2015-01-01 }}} //范围查询]}} } GET post/_search {query: { bool: { must: [{ match: { title: 苏麟 }},{ match: { content: 苏麟 }}]}} }wildcard 模糊查询 regexp 正则匹配查询 查询结果中score 代表匹配分数 建议先测试 DSL、再翻译成 Java POST _search {query: {bool : {must : {term : { user.id : kimchy }},filter: {term : { tags : production }},must_not : {range : {age : { gte : 10, lte : 20 }}},should : [{ term : { tags : env1 } },{ term : { tags : deployed } }],minimum_should_match : 1,boost : 1.0}} } 这期就到这里 , 下期见 !
http://www.zqtcl.cn/news/414291/

相关文章:

  • 网站权重高 做别的关键词怎么查看网站是否被百度收录
  • 沈阳网站开发培训多少钱广州做网站的公司哪家好
  • 宁波江北建设局网站建筑室内设计公司
  • 辽宁网站seo做网站的不给ftp
  • 南宁seo网站排名优化公司电商主图一键生成免费
  • 宁波论坛建站模板wordpress发布公告
  • 电子政务门户网站建设汇报班级优化大师官网登录
  • 做网站购买什么软件c 购物网站开发流程
  • 阿里云做网站送服务器赣州英文网站建设
  • 网站备案号官网黄山网站建设哪家好
  • 鞍山做网站排名滁州seo
  • 加关键词的网站seo服务外包公司
  • 大丰建站研究网站建设
  • 网站建设维护教程聊城做网站推广地方
  • 郑州七彩网站建设公司怎么样国内老牌的注册代理
  • 衡水外贸网站建设临清轴承网站建设
  • 上街郑州网站建设网站管理建设的需求分析
  • 厦门网站建设策划网站推广的常用方法有哪些
  • 做电脑图标的网站上海定制网站建设公司哪家好
  • 重庆seo网站推广工具济南网页设计师招聘信息
  • 甘肃永靖建设住建局网站深圳网络广告推广公司
  • 台州企业网站搭建电话厦门学网站建设
  • 做易经网站做网站布为网
  • 高端定制开发网站可以做网站的网络
  • 局政务网站建设管理工作总结wordpress ks主题
  • 网站集约化建设的意义网页制作成app
  • 建设银行大厂支行网站专业的营销型网站建设公司
  • 询盘网站苏州建设银行招聘网站
  • 制作网站图片手机网站跳转
  • 装修公司营销网站模板东莞家居网站建设