工具:kibana

GET _search
{
"query": {
"match_all": {}
}
} #创建索引结构
PUT sku
{
"mappings":{
"doc":{
"properties":{
"name":{
"type":"text",
"analyzer":"ik_smart"
},
"price":{
"type":"integer"
},
"image":{
"type":"text"
},
"createTime":{
"type":"date"
},
"spuId":{
"type":"keyword"
},
"categoryName":{
"type":"keyword"
},
"brandName":{
"type":"keyword"
},
"spec":{
"type":"object"
},
"saleNum":{
"type":"integer"
},
"commentNum":{
"type":"integer"
}
}
}
}
}
#插入文档 id 自动生成 POST sku/doc
{
"name":"小米手机11",
"price":400000,
"spuId":"101",
"createTime":"2019-01-10",
"categoryName":"手机",
"brandName":"小米",
"saleNum":110214,
"commentNum":15002,
"spec":{
"网络制式":"移动5G",
"屏幕尺寸":"6.0"
}
}
# id为1
PUT sku/doc/1
{
"name":"小米手机",
"price":200000,
"spuId":"101",
"createTime":"2019-11-10",
"categoryName":"手机",
"brandName":"小米",
"saleNum":1022,
"commentNum":15500,
"spec":{
"网络制式":"移动5G",
"屏幕尺寸":"6.0"
}
}
#查询所有数据
GET sku/_search #匹配查询数据
GET sku/_search
{
"query": {
"match_all": {}
}
} #匹配查询数据
GET sku/_search
{
"query": {
"match": {
"name":"小米电视"
}
}
} #精确查询数据
GET sku/_search
{
"query": {
"match": {
"name": {
"query":"小米电视",
"operator":"and"
}
}
}
} #多字段查询包含在"name","categoryName","brandName"字段的 小米
GET sku/_search
{
"query":{
"multi_match":{
"query":"小米",
"fields":["name","categoryName","brandName"]
}
}
} #词条匹配 查询价格=200000
GET sku/_search
{
"query": {
"term": {
"price": {
"value": "200000"
}
}
}
} #多词条匹配 查询价格=200000
GET sku/_search
{
"query": {
"terms": {
"price":[200000,100000]
}
}
} #布尔组合查询 查询名称包含手机的,并且品牌为小米的。
GET sku/_search
{
"query": {
"bool": {
"must": [
{"match": {"name": "手机"}},
{"term": {"brandName": "小米"}}
]
}
}
} #:查询名称包含手机的,或者品牌为小米的. 满足任意一个就可以 GET sku/_search
{
"query": {
"bool": {
"should": [
{"match": {"name": "手机"}},
{"term": {"brandName": "小米"}}
]
}
}
} # 过滤查询 过滤品牌为小米的记录
# 过滤是针对搜索的结果进行过滤,过滤器主要判断的是文档是否匹配,不去计算和判断文档的匹配度得分所以过滤器性能比查询要高,且方便缓存,推荐尽量使用过滤 器去实现查询或者过滤器和查询共同使用。
GET sku/_search
{
"query": {
"bool": {
"filter": [
{"match":{"brandName":"小米"}}
]
}
}
} #分组查询 一个结果集
#示例:按分组名称聚合查询,统计每个分组的数量
GET sku/_search
{
"size":0,
"aggs": {
"sku_category": {
"terms": {
"field": "categoryName"
}
}
}
}
#分组 多个结果集
# 按照 分类查询统计 和按照品牌查询统计
#"size":0, 不显示 "hits" : [] 里面的数据
GET sku/_search
{
"size":0,
"aggs": {
"sku_category": {
"terms": {
"field": "categoryName"
}
},
"sku_brand按照品牌查询分组": {
"terms": {
"field": "brandName"
}
}
}
}

全文检索ElasticSearch的简单使用笔记的更多相关文章

  1. Elasticsearch入门学习重点笔记

    原文:Elasticsearch入门学习重点笔记 必记知识点 Elasticsearch可以接近实时的搜索和存储大量数据.Elasticsearch是一个近实时的搜索平台.这意味着当你导入一个文档并把 ...

  2. 3.2 配置构建Angular应用——简单的笔记存储应用

    本节我们会通过构建一个简单的笔记存储应用(可以载入并修改一组简单的笔记)来学习如何应用Angular的特性.这个应用用到的特性有: 在JSON文件中存储笔记 展示.创建.修改和删除笔记 在笔记中使用M ...

  3. Log4j简单学习笔记

    log4j结构图: 结构图展现出了log4j的主结构.logger:表示记录器,即数据来源:appender:输出源,即输出方式(如:控制台.文件...)layout:输出布局 Logger机滤器:常 ...

  4. Linux——帮助命令简单学习笔记

    Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...

  5. OI数学 简单学习笔记

    基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\ ...

  6. 3.2.1 配置构建Angular应用——简单的笔记存储应用——编辑功能

    本节我们会接着上节课的内容,继续来完成使用Angular来创建简单的笔记存储应用,上一节课,我们完成了笔记的展示功能,本节课,我们来完成编辑功能. 编辑主要是两个功能:编辑现有的笔记以及创建新笔记.首 ...

  7. 3.2.1 配置构建Angular应用——简单的笔记存储应用——展示功能

    本节我们会通过构建一个简单的笔记存储应用(可以载入并修改一组简单的笔记)来学习如何应用Angular的特性.这个应用用到的特性有: 在JSON文件中存储笔记 展示.创建.修改和删除笔记 在笔记中使用M ...

  8. Elasticsearch集群知识笔记

    Elasticsearch集群知识笔记 Elasticsearch内部提供了一个rest接口用于查看集群内部的健康状况: curl -XGET http://localhost:9200/_clust ...

  9. Springboot整合ElasticSearch进行简单的测试及用Kibana进行查看

    一.前言 搜索引擎还是在电商项目.百度.还有技术博客中广泛应用,使用最多的还是ElasticSearch,Solr在大数据量下检索性能不如ElasticSearch.今天和大家一起搭建一下,小编是看完 ...

随机推荐

  1. 基于JWT的token认证机制

    1. 一个JWT实际上就是一个字符串,由三部分组成 头部,载荷,签名 头部:事描述类型,签名,算法等 可以被表示成一个JSON对象 载荷:存放有效信息的地方 包含三个部分 (1)标准注册中的声明-建议 ...

  2. POJ-1703 Find them, Catch them(并查集&数组记录状态)

    题目: The police office in Tadu City decides to say ends to the chaos, as launch actions to root up th ...

  3. P2P平台爆雷不断到底是谁的过错?

    早在此前,范伟曾经在春晚上留下一句经典台词,"防不胜防啊".而将这句台词用在当下的P2P行业,似乎最合适不过了.就在这个炎热夏季,P2P行业却迎来最冷冽的寒冬. 引发爆雷潮的众多P ...

  4. Linux进程的诞生和消亡

    1.进程的诞生 (1).进程0和进程1 (内核里边的固有的) (2).fork函数和vfork函数用于新进程的产生 2.进程的消亡 (1).正常终止和异常终止 (2).进程在运行时需要消耗系统资源(内 ...

  5. macbook 一些php相关操作

    开启php: https://jingyan.baidu.com/article/67508eb434539f9cca1ce4da.html 配置多虚拟主机:  https://jingyan.bai ...

  6. 推荐:MongoDB学习资料

    http://www.mongodb.org/display/DOCS/Production+Deployments Official MongoDBProject Website Getting S ...

  7. 解决LoadRunner服务器返回乱码

  8. [CTS2019]随机立方体(容斥+组合数学)

    这题七次方做法显然,但由于我太菜了,想了一会发现也就只会这么多,而且别的毫无头绪.发现直接做不行,那么,容斥! f[i]为至少i个极值的方案,然后这里需要一些辅助变量,a[i]表示选出i个三维坐标均不 ...

  9. Python数据分析与展示第3周学习笔记(北京理工大学 嵩天等)

    入门学习马上结束辽. 1.Pandas库 import pandas as pd 两个数据类型:Series,DataFrame Series类型:数据+索引 自定义索引 b = pd.Series( ...

  10. linux 添加常用长命令别名

    ## 设置linux下常用命令别名,提高效率 将要使用的命令别名写入到~/.bashrc文件,通过source ~/.bashrc命令使变更生效 alias sst='systemctl status ...