ElasticSearch
文章平均质量分 55
大头讲架构
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PHP-elasticsearch/elasticsearch包分词功能实现及源码解析
安装 直接使用 composer 安装 ES 包就可以了,这里使用官方的 elasticsearch/elasticsearch 这个包。 composer require elasticsearch/elasticsearch 安装好以后,创建一个客户端。hosts如果是多个节点的集群,那么可以配置一个二维数组。 $hosts = [ 'host' => '127.0.0.1', 'port' => '9200', 's原创 2022-01-19 11:22:10 · 2154 阅读 · 0 评论 -
ElasticSearch十五--ES-基于词项和基于全文的查询
term query term是表达语义的最小单位 ,搜索和利用统计语言模型进行自然语言处理都需要处理 term 特点 term level query: term query/range query/ exists query / prefix query / wildcard query 在ES里面,term 查询不做分词,把term查询作为一个整体词汇进行查询,进行一个精确匹配,并对匹配结果进行算分 可以通过 Constant Score 将查询转换成一个 filtering ,避免算分,并利用缓原创 2021-10-21 12:55:00 · 780 阅读 · 0 评论 -
ElasticSearch十四--ES-index template 和 aggregation聚合分析
index template index template index template 可以帮助你设定 Mappings 和 Settins ,并按照一定的规则,自动匹配到新创建的索引上 模板仅在一个索引被新创建时,才会产生作用。修改模板不会影响已经创建的索引 可以设定多个索引模板,这些设置会根据一定的规则 合并到一起 可以指定 Order的数值 控制 合并 的过程 实例 PUT _template/template_default { "index_patterns":["*"], "ord原创 2021-05-09 17:10:11 · 486 阅读 · 0 评论 -
ElasticSearch十三--ES--自定义Analyzer分词器
自定义Analyzer 多字段特性 实现精确匹配 增加一个 keyword 字段 使用不同的analyzer 不同语言 pinyin 字段的搜索 还支持为 搜索 和 索引 指定不同的 analyzer Exact Values vs Full Text Exact Value 包括数字 / 日期 / 具体一个字符串(例如 Apple Store) 精确值 不需要分词 ES 中的 keyword 全文本,非结构化的文本数据 需要分词 ES 中的 text 自定义分词 当 ES 自带的分词器原创 2021-05-09 14:41:09 · 1585 阅读 · 0 评论 -
ElasticSearch十二--ES--显式mapping 的设置和各个参数详解
显式mapping 设置mapping 指令 PUT {index} { "mappings":{ "properties":{ //设置mapping "job_name":{ "type":"text" } } } } 自定义Mapping 可以参考 API 手册,纯手写 也可以复制现有的动态Mapping: 创建一个临时的index,写入原创 2021-05-07 21:38:35 · 667 阅读 · 0 评论 -
ElasticSearch十一--Dynamic Mapping和常见字段类型
Dynamic Mapping和常见字段类型 Mapping Mapping 类似数据库中的 schema的定义,作用如下: 定义索引中的字段的名称 定义字段的数据类型,例如字符串,数字,布尔等 字段,倒排索引的相关配置 Mapping 会把 JSON 文档映射成 Lucene 所需要的扁平格式 一个Mapping 属于一个索引的 Type 每个文档都属于一个Type 一个 Type 有一个 Mapping 定义 7.0开始,不需要在 Mapping 定义中指定 Type信息 字段的数据类型 简单类原创 2021-05-07 12:55:44 · 312 阅读 · 1 评论 -
ElasticSearch十--ES--query string和simple query string
query string和simple query string query string 类似URI query 指令 POST users/_search { "query":{ "query_string":{ "default_field":"job_name", //相当于URI的 df "query":"产品" } } } 还可以搜索多个字段 指令 POST users/_search { "query":{ "query_stri原创 2021-05-06 22:13:50 · 1451 阅读 · 0 评论 -
ElasticSearch九--RequestBody和Query DSL简介
RequestBody和Query DSL简介 通过RequestBody 实现搜索 参数: q:指定查询语句,使用Query String Syntax df:默认字段,不指定会对所有字段进行查询 sort:排序 from/size: 用来分页 Profile 可以查看查询是如何被执行的 这个方法的参数和URI是一样的,比如我们在kibana里面执行下面的指令: GET test_home/_search { "profile": "true", "from":0, "size":10,原创 2021-05-06 13:12:36 · 319 阅读 · 0 评论 -
ElasticSearch八--ES--URI Search 详解
URI Search 通过URI query 实现搜索 参数: q:指定查询语句,使用Query String Syntax df:默认字段,不指定会对所有字段进行查询 sort:排序 from/size: 用来分页 Profile 可以查看查询是如何被执行的 Query String Syntax 指定字段和泛查询 泛查询 q参数后面只跟着查询内容会对所有字段进行搜索,可以看到返回值里面profile-query-type是 DisjunctionMaxQuery。 description是(cust原创 2021-05-05 21:48:16 · 527 阅读 · 0 评论 -
ElasticSearch七--ES--Search API
Search API 两种方法 URI Search 通过Url参数来进行查询 url指定参数q=field:搜索内容 例子: http://localhost:9200/{index}/_search?q={field}:搜索内容 url: http://localhost:9200/test_home/_search?q=job_name:php Request Body Search 通过ES提供的JSON格式的DSL语句进行查询 语法 范围 /_search 集群上所有索引原创 2021-05-05 17:25:13 · 273 阅读 · 0 评论 -
ElasticSearch六--ES--Analyzer分词
Analyzer分词 Analysis 和 Analyzer Analysis - 文本分析是把全文本转换成一系列单词(term/token)的过程,也叫分词 Analysis 是通过 Analyzer 来实现的 可使用 Elasticsearch 内置的分析器,或者按需制定分析器 除了在数据写入时转换词条,匹配 Query 语句时候也需要用相同的分析器对查询语句进行分析 Analyzer 的组成 分词器是专门处理分词的组件,由三部分组成 Character Filters (针对原始文本处理,例如去原创 2021-05-05 14:59:40 · 679 阅读 · 0 评论 -
ElasticSearch五--ES--倒排索引
正排索引和倒排索引 正排索引 正排索引就是通过索引id找到内容,比如通过书本的目录找到内容。 倒排索引 倒排索引就是把正排索引倒过来,通过内容找到索引id. 建立一个倒排索引 id 内容 1 php java go 2 php es 3 php 开发 把上面的内容可以建立成下面的倒排索引 内容 Count id php 3 1:0,2:0,3:0 java 1 1:1 go 1 1:2 es 1 2:1 开发 1 3:1 倒排索引的核心组成 单原创 2021-05-05 14:16:15 · 321 阅读 · 0 评论 -
ElasticSearch四--ES--基本操作和批量操作
基本操作 文档的CRUD Create 如果id 已经存在,会失败 Index 如果id不存在,创建新的文档。否则先删除在创建新的,版本会增加 Update 文档必须已经存在,更新只会对相应字段做增量修改 Create 指令 PUT {index}/_doc/{id}?op_type=create //只是创建 {JSON} PUT {index}/_doc/{id} //创建或更新 {JSON} PUT {index}/_create/{id} //只是创建 {JSON} POST {inde原创 2021-05-05 13:22:54 · 708 阅读 · 5 评论 -
ES-基本概念-节点集群分片副本
基本概念 分布式系统的可用性与扩展性 高可用性 服务可用性:允许有节点停止服务。 数据可用性:部分节点丢失,不会丢失数据。 可扩展性 请求量提升/数据的不断增长(将数据分布到所有节点上) 分布式特性 Elasticsearch 的分布式架构好处 存储的水平扩容 提高系统的可用性,部分节点停止服务,整个集群的服务不受影响 Elasticsearch的分布式架构 不同的集群通过不同的名字来区分,默认名字“Elasticsearch” 通过配置文件修改,或者在命令行中 -E cluster.name原创 2021-04-28 21:31:28 · 816 阅读 · 0 评论 -
ES-基本概念-索引文档REST API
基本概念 文档(Document) Elasticsearch 是面向文档的,文档是所有可搜索数据的最小单位。 日志文件中的日志项。 电影的具体信息/唱片的具体信息 MP3播放器里的一首歌/一篇PDF文档中的具体内容 文档会被序列化成 JSON 格式,保存在Elasticsearch中。 JSON对象由字段组成 每个字段都有对应的字段类型(字符串/数值/布尔/日期/二进制/范围类型) 每个文档都有一个Unique ID 你可以自己指定ID 或者通过Elasticsearch自己生成 文档的元数据原创 2021-04-23 15:51:14 · 527 阅读 · 0 评论 -
ElasticSearch二--Kibana安装
Kibana安装 安装 从官网(https://www.elastic.co/cn/downloads/kibana)可以进行下载安装 启动 /bin/kibana 启动后可以访问 localhost:5601 进行查看信息原创 2021-04-23 11:55:41 · 213 阅读 · 0 评论 -
ElasticSearch--ES安装多节点启动插件安装
ES–安装 安装 运行ElasticSearch, 需安装并配置JDK 设置 $JAVA_HOME 各个版本对 Java的依赖 ElasticSearch 5 需要 Java 8 以上的版本 ElasticSearch 从6.5开始支持 Java 11 https://www.elastic.co/support/matrix#matrix_jvm 7.0开始,内置了Java环境 从官网(https://www.elastic.co/cn/downloads/elasticsearch)原创 2021-03-25 13:35:24 · 463 阅读 · 0 评论 -
ElasticSearch一--ES简介
ES–简介 起源 ES起源于Lucene.Lucene是基于JAVA开发的搜索引擎类库。 Lucene具有高性能,易扩展的优点。 Lucene的局限性: 只能基于JAVA开发 类库的接口学习曲线陡峭 原生并不支持水平扩展 ES的诞生 ES的创始人Shay Banon说过:Search is something that any application should have。 2004年基于Lucene开发了 Compass 2010年重写了 Compass ,取名 ElasticSearch 支持分原创 2021-03-19 13:15:04 · 400 阅读 · 0 评论
分享