![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
elasticsearch
文章平均质量分 74
陪你一起捡蛋壳
一个逗比和沉默的狗
展开
-
阮一鸣es课程总结
1.master节点选举的策略2.分片分配的策略3.简述下分词器的算法原创 2021-09-27 18:07:53 · 556 阅读 · 0 评论 -
elasticsearch集群api
集群api和_cat对应的api很多都是相通的。1.Cluster Health获取集群的健康情况和一些基本信息GET _cluster/healthGET /_cluster/health/myindex,myindex1green:主副分片已经完成分配yellow:主分片分配完成,副分片没有分配完成red:分片不能分配2.Cluster State获取集群的状态GET /_cluster/state3.Cluster Stats获取集群的统计信息:节点情况,文档个数,分片原创 2021-08-19 18:01:01 · 124 阅读 · 0 评论 -
elasticsearch集群信息之cat命令
cat命令可以查看集群的信息,组成形式是:GET /_cat/indices?format=json&pretty, ?之前是命令,之后是参数,多个参数用&分隔。经常在终端的命令:curl -XGET '127.0.0.1:9200/_cat/indices?v' 或者curl -XPOST "127.0.0.1:9200/myindex/mytype/_mapping?pretty" -d '{ "mytype": { "properties": {原创 2021-08-19 15:32:44 · 4419 阅读 · 0 评论 -
elasticsearch中DSL之Span queries
引言span query(范围查询):通过该语句用户可以精准控制搜索词的先后顺序,以及多个搜索词在文档中的前后距离1.span term和term查询类似,(但是我实验发现,该句法不能在keyword上精确查找,所以下面的例子都是应用在text类型的字段上)GET myindex/_search{ "query": { "span_term": { "addr": { "value": "guangzhou"原创 2021-08-15 00:42:00 · 621 阅读 · 0 评论 -
elasticsearch中DSL之Joining queries(Has Child Query 和 Has Parent Query)
前言Elasticsearch这样的分布式计算系统执行全SQL风格的表连接操作代价昂贵。相应地,Elasticsearch提供了两种形式的联结可以实现水平规模的扩展。1.Nested Query嵌套查询,嵌套查询首先要定义嵌套字段类型,然后使用嵌套查询(我认为这种方式价值不高,既然使用嵌套字段,为什么不直接在上层字段直接新建字段表示嵌套字段的含义呢),这里不做说明。2.Has Child Query 和 Has Parent Query一般sql我们要jion查询是在两个表的。所以父子查询也要在两原创 2021-08-12 21:39:56 · 1198 阅读 · 0 评论 -
elasticsearch中DSL之Bool query
bool query布尔查询是一个复合查询,由各个bool类型的子查询组成。must :返回文档必须满足该条件,且提供分数filter :返回文档必须满足该条件,但是不需要提供分数should :返回文档可以满足0个或多个条件,且提供分数must_not : 返回文档必须不满足条件,但是不需要提供分数1.must子语句且逻辑GET myindex/_search{ "query": { "bool": { "must" :{原创 2021-08-11 16:59:20 · 726 阅读 · 0 评论 -
elasticsearch中DSL之Term level query(term query)
Term Level Query这里翻译为字段查询,字段查询是查询的文本不会被分词,只有对应的文档精确存在对应的查询文本才会返回。可以发现,字段查询是指查询文本不会被分词,而不是索引对应的mapping该字段不能分词,即使对应的字段是text属性,只要该文档的字段中存在对应的词元,就会返回。一般如果没有指定查询文本的分词器,就会使用mapping定义该字段的分词器来分析查询文本,所以一般我们用字段查询都是查询mapping中字段属性为keyword的字段。但是这不意味着match不能搜索keywor原创 2021-08-10 18:51:50 · 255 阅读 · 0 评论 -
elasticsearch中DSL之Full text queries(全文搜索)
全文搜索全文搜索是应用到字段类型为text上的搜索,也是es重要特性,es会根据字段的分词器算法,把字段进行解析,根据解析后的结果在es服务器中利用倒排索引算法,获取多个文档,并给出相应的得分。搜索和过滤的区别搜索要给出每个文档得分过滤不计算每个文档得分,而且过滤会把数据缓存起来。全匹配全部匹配,每个文档得分都是1GET myindex/_search{ "query": { "match_all": { } }}全部不匹配G原创 2021-08-05 22:13:09 · 819 阅读 · 0 评论 -
elasticsearch之Bucket Aggregation
对于bucket aggregation聚合,已经讲解了常用的Terms Aggregation链接,本篇讲解其他可能常用的分桶聚合。1.Filter Aggregation过滤聚合:是一个单值聚合,是把部分文档先确定下来,再进行子聚合运算(我任务场景比较小,通常会把该条件放到query里较好) "aggs":{ "fiter_one":{ "filter":{ "term":{ "a原创 2021-07-31 16:45:53 · 530 阅读 · 0 评论 -
elasticsearch之Terms Aggregation
引言Bucket aggregations本文译为桶聚合桶聚合(bucket aggregation)不像指标聚合(Metric aggregation)那样计算字段的指标,而是创建文档存储桶。 每个存储桶都与一个标准(取决于聚合类型)相关联,该标准确定当前上下文中的文档是否“落入”其中。 换句话说,存储桶有效地定义了文档集。 除了存储桶本身之外,存储桶聚合还计算并返回落入每个存储桶的文档数量。1.Terms Aggregation术语聚合(Terms Aggregation)在文档的指定字段中搜索原创 2021-07-23 18:25:27 · 2421 阅读 · 2 评论 -
elasticsearch之metrics aggregations
引言:aggregation定义"aggregations" : { "<aggregation_name>" : { "<aggregation_type>" : { <aggregation_body> } [,"meta" : { [<meta_data_body>] } ]? [,"aggregations" : { [<sub_aggregati原创 2021-06-14 17:22:03 · 593 阅读 · 4 评论 -
elasticsearch之Suggester
Suggestersuggester是提供合适的建议。例如我们在搜索引擎中,输入我们需要查询的内容,搜索引擎根据用户输入搜索的过程中,进行自动补全或者纠错,通过协助用户输入更精准的关键词,提高后续全文搜索阶段文档匹配的程度。Suggesters基本的运作原理是将输入的文本分解为token,然后在索引的字典里查找相似的term并返回。 根据使用场景的不同,Elasticsearch里设计了4种类别的Suggester,分别是:Term SuggesterPhrase SuggesterComple原创 2021-06-06 17:07:05 · 466 阅读 · 0 评论 -
elasticsearch之Search Template
Search Template:搜索模板我们在写查询条件时,有很多时候条件是相同的,只是传入的值是不同的,为了一劳永逸,我们可以定义一个搜索模板,以后在用到相同的查询的时候,不需要再次编写,直接使用该模板,传入需要查询的值即可。定义搜索模板(或者更新)POST _scripts/order_id_template{ "script": { "lang": "mustache", "source": { "query": {原创 2021-06-05 18:03:31 · 618 阅读 · 1 评论 -
elasticsearch之search APIs的特性
1. URL search并不是所有的查询都适合URL searchGET twitter/tweet/_search?q=user:kimchy参数列表:q :指定查询值df:如果没有指定field就使用该fieldsort:指定排序字段timeout:指定超时时间,默认不超时from,size:用于分页例子:使用默认field为user,值为zhangsan,按照年龄排序,从第4个开始共10个的文档,超时时间设置1sGET /my_index/_search?q=zhangsa原创 2021-03-16 18:35:28 · 101 阅读 · 0 评论 -
elasticsearch之文档APIs
1.创建文档1.1 文档和索引一样是可以不需要预先定义的,可以动态写入。action.auto_create_index:是否自动创建索引index.mapper.dynamic :是否自动创建mapping,mapping中是包含type的。1.2 version如果写入不指定版本,则es不会进行版本验证版本默认从1开始,以后每次递增1版本类型分为:internal:提供的版本和存储的版本相同才可以执行;external或者external_gt提供的版本大于存储的版本才可以执行;ex原创 2021-03-15 18:21:05 · 170 阅读 · 0 评论 -
elasticsearch之索引基本操作APIs
翻译出自:https://www.elastic.co/guide/en/elasticsearch/reference/5.6/docs.html原创 2021-03-03 22:39:08 · 211 阅读 · 1 评论 -
elasticsearch之字段field参数
下面翻译下field的基本属性原创 2021-02-06 18:07:22 · 6434 阅读 · 0 评论 -
elasticsearch之mapping中元属性
元数据是mapping自带的基本属性。原创 2021-02-03 18:35:16 · 367 阅读 · 0 评论 -
ElasticSearch之基础数据类型
1.texttext数据类型是全文搜索类型,对一个的字符串会被分词,可以通过单个词搜索到对应的数据。但是text类型不能用于排序或者聚合等操作,如果想要全文分词搜索又要排序或者聚合,可以和keywod一起构建多元字段类型。1.keyword...原创 2021-02-01 00:46:12 · 1855 阅读 · 0 评论 -
elasticsearch之mapping
翻译出处: https://www.elastic.co/guide/en/elasticsearch/reference/5.6/mapping.html#mappingMappingmapping是定义索引的基础,可以定义索引的type、field、是否存储、是否被索引等等。哪些字段是全文检索哪些字段是数值、日期、地理信息等type的所有字段是否被检索字段值的展示形式在动态模板中自定义规则type每一个索引都是可以有多个不同的type(建议每个索引只定义一个type),类似于数据库原创 2021-01-31 17:25:27 · 165 阅读 · 0 评论 -
ElasticSearch基础属性之date类型
一、date是es中的基础数据类型,在es内部其实存储的时间戳,但是我们经常会把时间转成字符串存储,那么数据是怎么识别的呢。如果我们在mapping设置字段的type是date,则写入数据的格式是按照默认的方式识别-strict_date_optional_time||epoch_millis,这表明只接受符合strict_date_optional_time格式的字符串值,或者long型数字,否则会写入失败。经过测试strict_date_optional_time是如下其中一种格式都可以,并不支持我们转载 2021-01-31 14:33:13 · 5527 阅读 · 0 评论 -
elasticsearch 模板、分区、动态模板dynamic_templates
elasticsearch 动态模板es模板:新建索引不用重新写语句,按照某个模板自动生成对应的属性功能:可以实现索引分区,比如按照一个月生成一个对应的索引,把每个月的数据放入到对应的月份索引中,避免单个索引过大的问题本文主要是动态模板的使用说明,不涉及其中的原理实现,另外本文演示的es的版本是 5.4一、模板与分区下面是新建一个名称为: alibaba_temp的模板,匹配的规则是按照 alibaba_taobao~开头, 默认的type是 taobao,默认生成字段 userId和 crea原创 2021-01-31 00:56:38 · 1590 阅读 · 0 评论