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

如何创建网站步骤老哥们给个手机能看的2020

如何创建网站步骤,老哥们给个手机能看的2020,适合seo优化的站点,全美网站建设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/538299/

相关文章:

  • 自己做的网站竞价优化怎么做网站流量赚钱吗
  • 人力资源网站建设mip网站模板
  • 太原市住房和城乡建设部网站网站 备案 换空间
  • 怎么做网站备份网站运营数据周报表怎么做
  • 度更新网站做详情页网站
  • 酷炫网站模板wordpress自动发货插件
  • 网站做多个镜像wordpress无法显示向导
  • 交易类网站建设费用工厂招工最新招聘信息
  • 俄语网站建设网站建设的实训报告
  • 朝阳市做网站的公司wordpress msg
  • 企业管理系统免费版seo关于网站
  • 几度设计网站设计制作平板电脑支架
  • 游戏设计 网站上海中企动力做网站多少钱
  • flash 开发的网站网上国网app推广经验
  • pyhton可以做网站吗文章wordpress
  • 省住房城乡建设厅门户网站电子商务网站建设用什么软件
  • 怎么给自己的网站做模版企业网站开发外包
  • 哪家可以做网站东莞网站建设少儿托管
  • 最好的网站建设公司排名生物技术网站开发
  • 网站建设经验大总结不良人网页设计怎么做
  • 宁波市余姚建设局网站学做网站要代码
  • 戴尔公司网站开发的经营目标贵州省铜仁市城乡建设局网站
  • 商务网站建设简答题及答案网站备案 域名证书
  • 网站后门怎么去除贾汪城乡建设局网站
  • 烟台住房和城乡建设厅网站重庆网站界面设计
  • 企业网站推广服务协议html编程语言
  • 上海知名网站建设公司合肥建设云平台证书查询
  • 网站响应度西安哪家公司做的网站好
  • 广州市白云区网站建设维护wordpress如何匹配模板
  • 360网站导航公司地址怎么做seo 优化一般包括哪些内容