工具: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. 吴裕雄--天生自然 JAVA开发学习: 循环结构

    public class Test { public static void main(String args[]) { int x = 10; while( x < 20 ) { System ...

  2. c# 异常处理 try --catch

    初学 try---catch 语法 try { 可能会出现异常的代码; 异常出现的那行代码下面的代码全不会执行,直接跳到catch中执行 ... ... } //try和catch之间不能有其他的代码 ...

  3. PHP实现快速排序算法相关案例

    <?php /** * 快速排序 --主要运用递归, 先把一个数找准位置,然后再递归把左右两边的数都找准位置 */ function QSort($a= []){ $nCount = count ...

  4. redis的过期策略

    1.了解redis 什么是Redis,为啥用缓存? Redis是用内存当缓存的.Redis主要是基于内存来进行高性能.高并发的读写操作的. 内存是有限的,比如Redis就只能用10个G,你一直往里面写 ...

  5. CSP模拟赛2游记

    这次由于有课迟到30min,了所以只考了70min. 调linux配置调了5min,只剩下65min了. T1:有点像标题统计,但要比他坑一点,而且我就被坑了,写了一个for(int i=1;i< ...

  6. centos 7搭建 strongSwan

    https://blog.csdn.net/sqzhao/article/details/76093994

  7. 《VSTO开发中级教程》刘永富 著 清华大学出版社 在线购买

    现在可以和作者 刘永富 通过“二手书直卖”这个APP直接买书. 二手书直卖 的下载方法: 方法一:加QQ群61840693,群共享中搜索“二手书直卖”,下载后打开即可. 方法二:从本帖下载:二手书直卖 ...

  8. UIView的setNeedsLayout, layoutIfNeeded 和 layoutSubviews 方法之间的关系解释(转)

    layoutSubviews总结 ios layout机制相关方法 - (CGSize)sizeThatFits:(CGSize)size- (void)sizeToFit——————- - (voi ...

  9. Office 365 共享邮箱/日历

    一.共享邮箱 Office 365共享邮箱对于客户通过电子邮箱提出的问题,共享邮箱是一个很好的处理方式,组织中的多人可以分担监控邮箱和回复的责任,使得客户的问题更快地得到答复,而相关电子邮件都存储在一 ...

  10. 没有更好的,五种操作系统助力研发,IMX6开发板做得到

    核心板参数 尺寸 51mm*61mm 四核商业级-2G NXP 四核 i.MX6Q,主频 1 GHz 内存:2GB DDR3:存储:16GB EMMC:SATA接口:支持 双核商业级-1G NXP 双 ...