网站单页支付宝支付怎么做的,张家界seo排名,做简单网站需要学什么软件,微信商城怎么弄下载安装引用这篇文章 目录 1、ES基本知识核心术语核心概念倒排索引ES字典树ES怎么保证读写一致 2、Window启动ES步骤elasticsearch-8.11.3elasticsearch-head-masterkibana-8.11.3 3、Kibana 调用ES API示例 1、ES基本知识
核心术语
● 索引#xff1a;index #xff08;相… 下载安装引用这篇文章 目录 1、ES基本知识核心术语核心概念倒排索引ES字典树ES怎么保证读写一致 2、Window启动ES步骤elasticsearch-8.11.3elasticsearch-head-masterkibana-8.11.3 3、Kibana 调用ES API示例 1、ES基本知识
核心术语
● 索引index 相当于表 ● 类型type 相当于表逻辑类型早版本有类型 ● 文档document 相当于数据库表的行 ● 字段fields相当于数据库表列
核心概念
● 映射mapping 相当于表结构后定义 ● 近实时NRT (Near real time) ● 节点node 每一个服务器 ● shard replica 数据分片与备份
倒排索引
倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和包含该属性值的各个记录地址。由于不是根据记录来确定属性而是根据属性来确定记录的位置所以称之为倒排索引。倒排索引改会在存储数据时将关键词和数据进行关联保存到倒排表中然后查询是将查询内容进行分词后在倒排中进行查询最后匹配数据即可。
ES字典树
字典树又称单词查找树Trie树是一种树形结构是一种哈系树的变种。典型应用于统计排序和保存大量的字符串。 优点利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。 3个基本性质 a. 根节点不包含字符除根节点外每一个节点都只包含一个字符。 b. 从根节点到某一节点路径上经过的字符串连接起来为改节点对应的字符串 c. 每一个节点的所有子节点包含的字符串都不相同。
ES怎么保证读写一致
更新操作可以通过版本号使用乐观并发控制以确保新版本不会被旧版本覆盖 每个文档都有一个_version 版本号这个版本号在文档被改变时加一。Elasticsearch使用这个 _version 保证所有修改都被正确排序当一个旧版本出现在新版本之后它会被简单的忽略。利用_version的这一优点确保数据不会因为修改冲突而丢失比如指定文档的version来做更改如果那个版本号不是现在的我们的请求就失败了。 新增操作一致性级别支持 quorum/one/all默认为 quorum即只有当大多数分片可用时才允许写操作。但即使大多数可用也可能存在因为网络等原因导致写入副本失败这样该副本被认为故障副本将会在一个不同的节点上重建。 ● one写操作只要有一个primary shard是active活跃可用的就可以执行 ● all写操作必须所有的primary shard和replica shard都是活跃可用的才可以执行 ● quorum默认值要求ES中大部分的shard是活跃可用的才可以执行写操作 查询读操作可以设置 replication 为 sync(默认)这使得操作在主分片和副本分片都完成后才会返回如果设置replication 为 async 时也可以通过设置搜索请求参数 _preference 为 primary 来查询主分片确保文档是最新版本
2、Window启动ES步骤 elasticsearch-8.11.3
1、elasticSearch.bat启动ES 2、浏览器输入地址http://localhost:9200/ 出入如下启动成功 3、IK分词器放在如下路径
elasticsearch-head-master
1、使用npm 启动该项目 2、在如下路径下执行 npm run start 3、访问http://localhost:9100 启动成功
kibana-8.11.3
1、kibana.bat 启动 2、package.json 修改版本号与ES一致 3、访问地址http://localhost:5601/app/dev_tools#/console 启动成功
3、Kibana 调用ES API示例
# ik_smart分词
GET /_analyze
{analyzer:ik_smart,text:我爱你特靠谱
}#测试ik_max_word分词
GET /_analyze
{analyzer:ik_max_word,text:我爱你特靠谱
}#新建索引
PUT helloes
{settings: {number_of_shards: 3,number_of_replicas: 2}
}#查看指定索引信息
GET /helloes# 查看所有索引信息
GET *# 删除索引
delete /helloes#查看索引是否存在
HEAD /helloes# 创建映射字段(PUT /索引库名/_mapping/类型名称)
PUT /helloes/_mapping
{properties: {title: {type: text,analyzer: ik_smart},images: {type: keyword,index: false},price: {type: float}}
}#查看映射关系
GET /helloes/_mapping#创建文档
POST /helloes/_doc
{ title:小米手机,category:小米,images:http://www.gulixueyuan.com/xm.jpg,price:3999.00
}#创建文档自定义ID
POST /helloes/_doc/1
{ title:小米手机,category:小米,images:http://www.gulixueyuan.com/xm.jpg,price:3999.00
}# 文档查询
GET /helloes/_doc/1#搜索当前索引下所有数据
GET /helloes/_search# 删除文档
DELETE /helloes/_doc/1#文档修改 (数据不存在则新增)
POST /helloes/_doc/1
{title:华为手机2,category:华为,images:http://www.gulixueyuan.com/hw.jpg,price:1999.00
}#修改局部信息
POST /helloes/_update/1
{doc: {title:小米手机,category:小米}
}#URL拼接条件查询
GET /helloes/_search?qcategory:小米# JSON 格式查询全文检索GET /helloes/_search{query: {match: {category: 小}}}# JSON请求提查询所有数据
GET /helloes/_search
{query: {match_all: {}}
}# 查询返回指定字段
GET /helloes/_search
{query: {match_all: {}},_source: [title]
}# 分页查找 from:页码 size页面调试
GET /helloes/_search
{query: {match_all: {}},from: 0,size: 20
}#查询排序
GET /helloes/_search
{query: {match_all: {}},sort: [{price: {order: desc}}]
}# 多条件查询
GET /helloes/_search
{query: {bool: {must: [{match: {title: 小米}},{match: {price: 1999}}]}}
}# 值完全匹配
GET /helloes/_search
{query: {match_phrase: {title: 小米}}
}# 高亮查询
GET /helloes/_search
{query: {match_phrase: {category: 米}},highlight: {fields: {category: {}//----高亮这字段}}
}#分组查询
GET /helloes/_search
{aggs:{//聚合操作price_group:{//名称随意起名terms:{//分组field:price//分组字段}}}
}