ElasticSearch
文章平均质量分 55
Thepatterraining
这个作者很懒,什么都没留下…
展开
-
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 · 2002 阅读 · 0 评论 -
ElasticSearch十五--ES-基于词项和基于全文的查询
term queryterm是表达语义的最小单位 ,搜索和利用统计语言模型进行自然语言处理都需要处理 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 · 653 阅读 · 0 评论 -
ElasticSearch十四--ES-index template 和 aggregation聚合分析
index templateindex templateindex template 可以帮助你设定 Mappings 和 Settins ,并按照一定的规则,自动匹配到新创建的索引上模板仅在一个索引被新创建时,才会产生作用。修改模板不会影响已经创建的索引可以设定多个索引模板,这些设置会根据一定的规则 合并到一起可以指定 Order的数值 控制 合并 的过程实例PUT _template/template_default{ "index_patterns":["*"], "ord原创 2021-05-09 17:10:11 · 331 阅读 · 0 评论 -
ElasticSearch十三--ES--自定义Analyzer分词器
自定义Analyzer多字段特性实现精确匹配增加一个 keyword 字段使用不同的analyzer不同语言pinyin 字段的搜索还支持为 搜索 和 索引 指定不同的 analyzerExact Values vs Full TextExact Value 包括数字 / 日期 / 具体一个字符串(例如 Apple Store) 精确值 不需要分词ES 中的 keyword全文本,非结构化的文本数据 需要分词ES 中的 text自定义分词当 ES 自带的分词器原创 2021-05-09 14:41:09 · 1304 阅读 · 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 · 476 阅读 · 0 评论 -
ElasticSearch十一--Dynamic Mapping和常见字段类型
Dynamic Mapping和常见字段类型MappingMapping 类似数据库中的 schema的定义,作用如下:定义索引中的字段的名称定义字段的数据类型,例如字符串,数字,布尔等字段,倒排索引的相关配置Mapping 会把 JSON 文档映射成 Lucene 所需要的扁平格式一个Mapping 属于一个索引的 Type每个文档都属于一个Type一个 Type 有一个 Mapping 定义7.0开始,不需要在 Mapping 定义中指定 Type信息字段的数据类型简单类原创 2021-05-07 12:55:44 · 172 阅读 · 1 评论 -
ElasticSearch十--ES--query string和simple query string
query string和simple query stringquery 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 · 1239 阅读 · 0 评论 -
ElasticSearch九--RequestBody和Query DSL简介
RequestBody和Query DSL简介通过RequestBody 实现搜索参数:q:指定查询语句,使用Query String Syntaxdf:默认字段,不指定会对所有字段进行查询sort:排序from/size: 用来分页Profile 可以查看查询是如何被执行的这个方法的参数和URI是一样的,比如我们在kibana里面执行下面的指令:GET test_home/_search{ "profile": "true", "from":0, "size":10,原创 2021-05-06 13:12:36 · 193 阅读 · 0 评论 -
ElasticSearch八--ES--URI Search 详解
URI Search通过URI query 实现搜索参数:q:指定查询语句,使用Query String Syntaxdf:默认字段,不指定会对所有字段进行查询sort:排序from/size: 用来分页Profile 可以查看查询是如何被执行的Query String Syntax指定字段和泛查询泛查询q参数后面只跟着查询内容会对所有字段进行搜索,可以看到返回值里面profile-query-type是 DisjunctionMaxQuery。 description是(cust原创 2021-05-05 21:48:16 · 355 阅读 · 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:phpRequest Body Search通过ES提供的JSON格式的DSL语句进行查询语法范围/_search集群上所有索引原创 2021-05-05 17:25:13 · 166 阅读 · 0 评论 -
ElasticSearch六--ES--Analyzer分词
Analyzer分词Analysis 和 AnalyzerAnalysis - 文本分析是把全文本转换成一系列单词(term/token)的过程,也叫分词Analysis 是通过 Analyzer 来实现的可使用 Elasticsearch 内置的分析器,或者按需制定分析器除了在数据写入时转换词条,匹配 Query 语句时候也需要用相同的分析器对查询语句进行分析Analyzer 的组成分词器是专门处理分词的组件,由三部分组成Character Filters (针对原始文本处理,例如去原创 2021-05-05 14:59:40 · 531 阅读 · 0 评论 -
ElasticSearch五--ES--倒排索引
正排索引和倒排索引正排索引正排索引就是通过索引id找到内容,比如通过书本的目录找到内容。倒排索引倒排索引就是把正排索引倒过来,通过内容找到索引id.建立一个倒排索引id内容1php java go2php es3php 开发把上面的内容可以建立成下面的倒排索引内容Countidphp31:0,2:0,3:0java11:1go11:2es12:1开发13:1倒排索引的核心组成单原创 2021-05-05 14:16:15 · 214 阅读 · 0 评论 -
ElasticSearch四--ES--基本操作和批量操作
基本操作文档的CRUDCreate 如果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 · 485 阅读 · 5 评论 -
ES-基本概念-节点集群分片副本
基本概念分布式系统的可用性与扩展性高可用性服务可用性:允许有节点停止服务。数据可用性:部分节点丢失,不会丢失数据。可扩展性请求量提升/数据的不断增长(将数据分布到所有节点上)分布式特性Elasticsearch 的分布式架构好处存储的水平扩容提高系统的可用性,部分节点停止服务,整个集群的服务不受影响Elasticsearch的分布式架构不同的集群通过不同的名字来区分,默认名字“Elasticsearch”通过配置文件修改,或者在命令行中 -E cluster.name原创 2021-04-28 21:31:28 · 698 阅读 · 0 评论 -
ES-基本概念-索引文档REST API
基本概念文档(Document)Elasticsearch 是面向文档的,文档是所有可搜索数据的最小单位。日志文件中的日志项。电影的具体信息/唱片的具体信息MP3播放器里的一首歌/一篇PDF文档中的具体内容文档会被序列化成 JSON 格式,保存在Elasticsearch中。JSON对象由字段组成每个字段都有对应的字段类型(字符串/数值/布尔/日期/二进制/范围类型)每个文档都有一个Unique ID你可以自己指定ID或者通过Elasticsearch自己生成文档的元数据原创 2021-04-23 15:51:14 · 415 阅读 · 0 评论 -
ElasticSearch二--Kibana安装
Kibana安装安装从官网(https://www.elastic.co/cn/downloads/kibana)可以进行下载安装启动/bin/kibana启动后可以访问 localhost:5601 进行查看信息原创 2021-04-23 11:55:41 · 140 阅读 · 0 评论 -
ElasticSearch--ES安装多节点启动插件安装
ES–安装安装运行ElasticSearch, 需安装并配置JDK设置 $JAVA_HOME各个版本对 Java的依赖ElasticSearch 5 需要 Java 8 以上的版本ElasticSearch 从6.5开始支持 Java 11https://www.elastic.co/support/matrix#matrix_jvm7.0开始,内置了Java环境从官网(https://www.elastic.co/cn/downloads/elasticsearch)原创 2021-03-25 13:35:24 · 332 阅读 · 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开发了 Compass2010年重写了 Compass ,取名 ElasticSearch支持分原创 2021-03-19 13:15:04 · 253 阅读 · 0 评论