ElasticSearch基础篇-条件查询与映射

这篇具有很好参考价值的文章主要介绍了ElasticSearch基础篇-条件查询与映射。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ElasticSearch基础篇二

条件查询
GET http://10.192.193.98:9200/shopping/_search?q=title:小米手机
  • q:代表查询条件

响应结果

{
    "took": 772,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 4,
            "relation": "eq"
        },
        "max_score": 0.42144203,
        "hits": [
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "NunonIkBDJDpQI3ST7tm",
                "_score": 0.42144203,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://www.gulixueyuan.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "N-nonIkBDJDpQI3SXrt6",
                "_score": 0.42144203,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://www.gulixueyuan.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "OOnonIkBDJDpQI3SbLvp",
                "_score": 0.42144203,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://www.gulixueyuan.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "OenonIkBDJDpQI3ScbtO",
                "_score": 0.42144203,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://www.gulixueyuan.com/xm.jpg",
                    "price": 3999.00
                }
            }
        ]
    }
}

🔖 由于在域名后面添加查询条件不是很方便,所以我们一般使用json格式发送查询条件

匹配查询
GET http://10.192.193.98:9200/shopping/_search

{
    "query":{
        "match":{
            "category":"小米"
        }
    }
}
  • query:代表查询条件
  • match:匹配查询
全量查询
GET http://10.192.193.98:9200/shopping/_search

{
    "query":{
        "match_all":{
            
        }
    }
}
  • match_all:匹配所有
分页查询
GET http://10.192.193.98:9200/shopping/_search
{
    "query":{
        "match_all":{

        }
    },
    "from":0,
    "size":2
}
  • from:起始位置 (页码-1)*每页数据条数
  • size: 分页大小
字段过滤
GET http://10.192.193.98:9200/shopping/_search

{
    "query":{
        "match_all":{

        }
    },
    "_source":[
        "title"
    ]
}
  • _source:设置需要返回的字段
排序
GET http://10.192.193.98:9200/shopping/_search

{
    "query":{
        "match_all":{

        }
    },
    "sort":{
        "price":{
            "order":"desc"
        }
    }
}
  • sort:设置排序
  • order:排序方式 asc desc
多条件查询
GET http://10.192.193.98:9200/shopping/_search

{
    "query":{
        "bool":{
            "must":[
                {
                    "match":{
                        "category":"小米"
                    }
                },
                {
                    "match":{
                        "title":"小米手机"
                    }
                }
            ]
        }
    }
}
  • bool:用于构建复杂查询的查询类型。它允许你组合多个查询条件,bool 查询由三个部分组成
    • must:所有的查询条件都必须匹配才会返回文档。
    • must_not:所有的查询条件都不能匹配才会返回文档。
    • should:至少有一个查询条件匹配,但不是必须的
GET http://10.192.193.98:9200/shopping/_search

{
    "query":{
        "bool":{
            "should":[
                {
                    "match":{
                        "category":"小米"
                    }
                },
                {
                    "match":{
                        "category":"华为"
                    }
                }
            ]
        }
    }
}
范围查询
GET http://10.192.193.98:9200/shopping/_search

{
    "query":{
        "bool":{
            "should":[
                {
                    "match":{
                        "category":"小米"
                    }
                },
                {
                    "match":{
                        "category":"华为"
                    }
                }
            ],
            "filter":{
                "range":{
                    "price":{
                        "gt":2598
                    }
                }
            }
        }
    }
}
  • filter:一种用于限制搜索结果的查询子句,它用于过滤掉不符合特定条件的文档,而不会对相关性进行计算,过滤器(filter)不会影响搜索结果的相关性得分。相比于查询,过滤器更适合用于筛选文档
  • range:设置范围
完全匹配
GET http://10.192.193.98:9200/shopping/_search

{
    "query":{
        "match_phrase":{
            "category":"小"
        }
    }
}
  • match_phrase:代表完全匹配,不会对查询条件中的内容进行分词

❗️如果使用match则为全文检索模式,会对查询条件中的内容进行分词,返回包含具有查询条件分词后结果

高亮查询
GET http://10.192.193.98:9200/shopping/_search

{
    "query":{
        "match":{
            "category":"小米"
        }
    },
    "highlight":{
        "fields":{
            "category":{}
        }
    }
}
<em>小</em><em>米</em>
  • highlight:设置高亮字段
聚合查询
GET http://10.192.193.98:9200/shopping/_search

{
    "aggs":{
        "price_group":{//为操作起名price_group
            "terms":{ 
                "field":"price"
            }
        },
        "price_avg":{
            "avg":{
                "field":"price"
            }
        }
    },
    "size":0
}
  • aggs:聚合操作
  • terms:分组
  • avg:求平局值

响应结果文章来源地址https://www.toymoban.com/news/detail-621106.html

"aggregations": {
        "price_group": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": 3999.0,
                    "doc_count": 4
                },
                {
                    "key": 1999.0,
                    "doc_count": 1
                },
                {
                    "key": 2599.0,
                    "doc_count": 1
                },
                {
                    "key": 2999.0,
                    "doc_count": 1
                }
            ]
        },
        "price_avg": {
            "value": 3370.4285714285716
        }
    }
映射
创建映射
PUT http://10.192.193.98:9200/user/_mapping

{
    "properties":{
        "name":{
            "type":"text",
            "index":true
        },
        "sex":{
            "type":"keyword",
            "index":true
        },
        "tel":{
            "type":"keyword",
            "index":false
        }
    }
}
  • 映射类似于mysql中的表结构约束
  • text:文本类型,可以进行全文检索,对查询条件关键字分词匹配
  • keyword:关键字,作为一个整体,不会分词
  • index:是否可被索引,如果为false则该字段无法被查询
查询映射
GET http://10.192.193.98:9200/user/_mapping

到了这里,关于ElasticSearch基础篇-条件查询与映射的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式搜索引擎ElasticSearch的RestClient查询文档

         

    2024年02月12日
    浏览(62)
  • elasticsearch之多条件查询

    字段名:用于指定要搜索的字段名称。例如, message 字段。 值:用于指定要搜索的值。例如, error 。 运算符:用于指定如何比较字段和值之间的关系。例如, : 表示相等, 表示大于, 表示小于, = 表示大于等于, = 表示小于等于, != 表示不等于, AND 表示逻辑与, OR 表示

    2024年04月13日
    浏览(27)
  • Elasticsearch 基本使用(三)条件查询

    term 单词查询 对于不分词的字段( 数组 视同普通字段,查询数组字段时,只要匹配上一项就算匹配) 条件直接匹配字段值 对于分词的字段;在字段 倒排索引表,仅限分词结果 内查找条件值 terms 同样是单词查询;但条件值可以是多个值,效果为 term1 or term2 should : [ {term1…

    2024年02月11日
    浏览(41)
  • ElasticSearch多条件复杂查询实现

    前面实现方式和但条件一致 查询代码区别如下 注释里面标注了或者和and那两行的区别 网站链接 elasticsearch(ES)在SpringBoot中的复杂查询(多条件分页查询以及聚合查询)_尺规作图的博客-CSDN博客_springboot 整合es多条件

    2024年02月04日
    浏览(47)
  • elasticsearch 跨索引联合多条件查询

    Elasticsearch 是一个免费且开放的分布式搜索和分析引擎。适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组

    2023年04月09日
    浏览(39)
  • ElasticSearch核心详解、文档、查询响应、分页、映射、结构化查询

    在Elasticsearch中,文档以JSON格式进行存储,可以是复杂的结构,如: 其中,card是一个复杂对象,嵌套的Card对象 元数据(metadata)        一个文档不只有数据。它还包含了元数据(metadata)——关于文档的信息。 三个必须的元数据节点是: index        索引(index)类似于关

    2024年02月12日
    浏览(32)
  • Java Elasticsearch多条件分组聚合查询

    需求         在项目开发中,需要从elasticsearch中查询日志数据,先统计每一天的日志调用量,然后在每一天的分组聚合基础上,再分组聚合统计成功和失败的日志调用量。 代码

    2024年02月08日
    浏览(54)
  • ElasticSearch学习简单使用(索引、文档、分页查询、多条件查询)

    APIfox接口在线文档 安装连接 下载链接(各个系统,也包括docker) 打开 我下载的时window版本,直接就是zip压缩包解压后直接使用 执行bin目录下的这个bat文件,就会自动打开终端运行了。 大部分使用http请求进行学习。 你需要一个接口工具,postman,APIfox,或者一些浏览器插件

    2024年02月03日
    浏览(41)
  • 初识ElasticSearch(5) -批量操作之bulk | 条件查询 | 其它查询

    本系列笔记结合HTTP请求(使用postman调用,源文件见GitHub)和ElasticsearchRestTemplate进行调用学习 ElasticsearchRestTemplate封装了RestHighLevelClient,有些场景还得用RestHighLevelClient来操作 版本说明:使用的SpringBoot-2.3.5,对应的ElasticSearch-7.6.2;所以还是可以用RestHighLevelClient ElasticSearch-7

    2023年04月08日
    浏览(70)
  • springboot整合elasticsearch8组合条件查询

    整合过程见上一篇文章 springboot整合elasticsearch8 1.es8多条件组合查询 2.使用scroll进行大数据量查询

    2024年02月16日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包