有哪些网站建设方案,专业手机网站设计,聊城百度做网站的,西安产品设计公司有哪些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?
} 这期就到这里 , 下期见 !