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

河南官网网站建设报价贵州seo技术查询

河南官网网站建设报价,贵州seo技术查询,免费网站建设的基本流程,百度做网站需要交钱吗目录 一、认识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/229835.html

相关文章:

  • 建材外贸网站建设seo算法培训
  • 从网络安全角度考量_写出建设一个大型电影网站规划方案百度收录查询工具官网
  • 池州做网站的公司seo学习论坛
  • 网站建设是什么软件小程序开发平台官网
  • 花生壳 做网站市场营销毕业后找什么工作
  • wordpress利于seoseo整站优化技术培训
  • 北京网站建设兼职百度图片识别
  • 周口哪里有做网站的潍坊在线制作网站
  • 徐州做网站建设公司伊春seo
  • 赚钱做任务的网站软文推广方案
  • 东营做营销型网站建设百度自动点击器
  • 河北网站推广优化有哪些推广平台和渠道
  • 做超市促销海报哪个网站好英雄联盟更新公告最新
  • 小商店助手小程序广州优化疫情防控措施
  • 天河做网站技术百度网址大全手机版
  • 中国建设银行网站简介广西网络优化seo
  • 怎么查网站的关键词排名一个平台怎么推广
  • 企业网站建设用什么中国十大广告公司排行榜
  • 网站制作原理网址解析ip地址
  • 深圳北站网站建设企业建站模板
  • 征求网站建设意见的通知如何设计网站的首页
  • 如何做网站背景企业网络推广技巧
  • dw做框架网站推广网站的方法有哪些
  • 宝安网站优化新闻热搜榜 今日热点
  • 企业的网站一般做哪些维护推广网址
  • 武汉网站优化seo百度合伙人官方网站
  • 上海专业做网站电话永久免费个人网站注册
  • 凡科免费网站可以做推广吗产品如何在网上推广
  • 镇平微网站建设公司宣传网站制作
  • 男女直接做视频网站app推广代理加盟