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

网站基础建设ppt永久免费的建站系统有哪些

网站基础建设ppt,永久免费的建站系统有哪些,广告设计培训哪家好,怎么做网站最便宜目录 一、认识elaticsearch 1、什么是正向索引 2、什么是倒排索引 二、概念 1、说明 2、mysql和es的对比 三、mapping属性 1、定义 四、CRUD 1、查看es中有哪些索引库 2、创建索引库 3、修改索引库 4、删除索引库 5、新增文档 6、删除文档 5、条件查询 一、认识…

目录

一、认识elaticsearch

1、什么是正向索引

2、什么是倒排索引

二、概念

1、说明

2、mysql和es的对比

三、mapping属性

1、定义

四、CRUD

1、查看es中有哪些索引库

2、创建索引库

3、修改索引库

4、删除索引库

5、新增文档

6、删除文档

5、条件查询


一、认识elaticsearch

elasticsearch基于倒排索引结构

1、什么是正向索引

正向索引就像mysql数据库,如果根据非索引字段查询数据,会逐行获取表中所有数据,然后判断是否满足规则

例如:设置数据库中有title字段,为非索引字段流程如下:

1)用户搜索数据,条件是title符合`"%手机%"`

2)逐行获取数据,比如id为1的数据

3)判断数据中的title是否符合用户搜索条件

4)如果符合则放入结果集,不符合则丢弃。回到步骤1

2、什么是倒排索引

  • 文档:就是用来搜索的数据,等同于mysql数据库中的一条记录
  • 词条:利用分词器分出来的词条,例如数据中title为:我是中国人,分词器就可以分为:我 、是、 中国人、 中国、 国人等几个词条出来

* 将每一个文档的数据利用算法分词,得到一个个词条
* 创建表,每行数据包括词条、词条所在文档id、位置等信息
* 因为词条唯一性,可以给词条创建索引,例如hash表结构索引

流程:

1)用户输入条件`"华为手机"`进行搜索。

2)对用户输入内容**分词**,得到词条:`华为`、`手机`。

3)拿着词条在倒排索引中查找,可以得到包含词条的文档id:1、2、3。

4)拿着文档id到正向索引中查找具体文档。

  • 正向索引是最传统的,根据id索引的方式。但根据词条查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的词条,是**根据文档找词条的过程。
  • 而倒排索引**则相反,是先找到用户要搜索的词条,根据词条得到保护词条的文档的id,然后根据id获取文档。是**根据词条找文档的过程。

二、概念

1、说明

elasticsearch是面向document存储的,一个doc就是数据库的一条记录,该条记录会被序列化成json的格式存入文档中,文档中包含很多的字段(filed)等同于数据库中的列

2、mysql和es的对比

三、mapping属性

1、定义

mapping是对文档中field的约束,例如对字段类型的约束。就像数据库中的表结构

  • * type:字段数据类型,常见的简单类型有:
    •   * 字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)
    •   * 数值:long、integer、short、byte、double、float、
    •   * 布尔:boolean
    •   * 日期:date
    •   * 对象:object
  • * index:是否创建索引,默认为true
  • * analyzer:使用哪种分词器
  • * properties:该字段的子字段

例如下面的json文档:

{
    "age": 21,
    "weight": 52.1,
    "isMarried": false,
    "info": "这是一个程序员",
    "email": "nuanqin@163.com",
    "score": [99.1, 99.5, 98.9],
    "name": {
        "firstName": "思",
        "lastName": "陈"
    }
}

对应的每个字段映射(mapping):

  • * age:类型为 integer;参与搜索,因此需要index为true;无需分词器
  • * weight:类型为float;参与搜索,因此需要index为true;无需分词器
  • * isMarried:类型为boolean;参与搜索,因此需要index为true;无需分词器
  • * info:类型为字符串,需要分词,因此是text;参与搜索,因此需要index为true;分词器可以用ik_smart
  • * email:类型为字符串,但是不需要分词,因此是keyword;不参与搜索,因此需要index为false;无需分词器
  • * score:虽然是数组,但是我们只看元素的类型,类型为float;参与搜索,因此需要index为true;无需分词器
  • * name:类型为object,需要定义多个子属性
  •   * name.firstName;类型为字符串,但是不需要分词,因此是keyword;参与搜索,因此需要index为true;无需分词器
  •   * name.lastName;类型为字符串,但是不需要分词,因此是keyword;参与搜索,因此需要index为true;无需分词器

四、CRUD

可采用es的可视化工具kibana进行执行CRUD语句,

入口:kibana的Dev Tools

1、查看es中有哪些索引库

GET /_cat/indices?v

2、创建索引库

PUT /索引库名称
{"mappings": {"properties": {"字段名":{"type": "text","analyzer": "ik_smart"},"字段名2":{"type": "keyword","index": "false"},"字段名3":{"properties": {"子字段": {"type": "keyword"}}},// ...略}}
}

3、修改索引库

倒排索引结构虽然不复杂,但是一旦数据结构改变(比如改变了分词器),就需要重新创建倒排索引,这简直是灾难。因此索引库**一旦创建,无法修改mapping**。

虽然无法修改mapping中已有的字段,但是却允许添加新的字段到mapping中,因为不会对倒排索引产生影响。

PUT /索引库名/_mapping
{"properties": {"新字段名":{"type": "integer"}}
}

4、删除索引库

    DELETE /索引库名

5、新增文档

新增文档类似于数据库的新增一条记录

POST /索引库名/_doc/文档id
{"字段1": "值1","字段2": "值2","字段3": {"子属性1": "值3","子属性2": "值4"},// ...
}#例如:
POST /heima/_doc/1
{"info": "我是一个程序员","email": "nuanqin@163.com","name": {"firstName": "思","lastName": "陈"}
}

6、删除文档

DELETE /{索引库名}/_doc/id值

5、条件查询

基本语法:

  • * 请求方式:PUT
  • * 请求路径:/索引库名,可以自定义,若不带索引库名代表查询所有库
  • * 请求参数:mapping映射
  • *_search代表搜索
#带索引库名 -->
GET /index_name/_search
{"query": {"match_all": {}}
}#不带索引库名
GET /_search
{"query": {"match_all": {}}
}#用于搜索字段中包含特定文本的文档:
GET /index_name/_search
{"query": {"match": {"message": "error"}}
}#精确匹配字段值
GET /index_name/_search
{"query": {"term": {"status": "200"}}
}#组合查询多个条件
GET /index_name/_search
{"query": {"bool": {"must": [{ "match": { "message": "error" } },{ "term": { "status": "200" } }]}}
}#过滤特定范围内的数据
GET /my-index/_search
{"query": {"range": {"field_name": {"gte": "2024-01-01","lte": "2024-01-31"}}}
}#分页查询
GET /my-index/_search
{"query": {"match_all": {}},"from": 0,"size": 10
}#排序查询
GET /my-index/_search
{"query": {"match_all": {}},"sort": [{ "field_name": { "order": "asc" } }]
}#完整示例
GET /my-index/_search
{"query": {"bool": {"must": [{ "match": { "title": "Elasticsearch" } }],"filter": [{ "range": { "timestamp": { "gte": "2024-01-01", "lte": "2024-01-31" } } }],"must_not": [{ "term": { "status": "deleted" } }]}},"aggs": {"status_count": {"terms": {"field": "status","size": 10}}},"sort": [{ "timestamp": { "order": "desc" } }],"from": 0,"size": 10
}

http://www.dtcms.com/wzjs/49031.html

相关文章:

  • 建设银行官方网站下载安装网络营销环境分析主要包括
  • mindmanager网站建设流程图seo及网络推广招聘
  • 免费b2b网站排名软文素材
  • wordpress3.5.1漏洞seo教程技术整站优化
  • 温州做网站建设网站快速收录工具
  • 好看的 网站正在建设中源码销售成功案例分享
  • wordpress页面伪静态资源网站优化排名优化
  • 网络营销推广公司结构外贸seo网站建设
  • 做网站卖东西赚钱杭州做百度推广的公司
  • 企业手机网站建设市场东莞营销网站建设推广
  • 网易做网站吗竞价推广托管
  • 做网站考什么赚钱线上营销培训
  • 兼职 做网站真正永久免费的建站系统有哪些
  • 自己能够做投票网站吗游戏推广员怎么做
  • 网站站点层叠样式怎么做搜索引擎营销就是seo
  • 网站建设优化服务好么短链接在线生成
  • 客户说做网站没效果广告做到百度第一页
  • wordpress部署到外网杭州seo外包
  • 建设部网站证书查询九易建网站的建站模板
  • 找印度人做网站刷关键词排名seo软件
  • 网站开发进度计划表百度seo营销推广
  • 七牛云wordpress郑州seo培训
  • 做电影网站违法谷歌seo排名工具
  • 西部数码网站管理助手 ftp密码seo课程培训机构
  • 网页制作与网站建设实战教程视频seo搜狗排名点击
  • 营销网站建设东莞网站建设优化推广
  • aspnet通讯录网站开发bing搜索引擎下载
  • 手机网站菜单代码宁波seo在线优化方案
  • 专业网站建设开发seo网站优化做什么
  • 手机付费咨询网站建设网络优化大师app