ElasticSerach学习(三)-全文检索

简介: ElasticSerach学习(三)-全文检索

es作为搜索引擎,最重要的就是搜索功能

es的搜索分为两种

  1. queries 全文检索
  2. aggregations 统计分析


全文检索是对数据进行查询,统计分析类似关系型数据库的sum,count等计算函数,这两种通常可以一起使用


1.1 全文检索

1.1.1 条件查询

GETtwitter/_search?pretty{
"query": {
"match": {
"name": "zy"    }
  }
}


带参数查询name=zy的文档


1.1.2 分页查询

{
"query":{
"match_all":{
        }
    },
"from":"0",
"size":"2"}


from起始页码,size每页条数

1.1.3 过滤查询结果

{
"query":{
"match_all":{
        }
    },
"from":"0",
"size":"2",
"_source":["name"]
}


查询结果中只有name属性,去除其他字段

1.1.4 排序

{
"query":{
"match_all":{
        }
    },
"from":"0",
"size":"2",
"_source":["name"],
"sort":{
"age":{
"order":"desc"        }
    }
}


sort排序,根据某个字段升序降序排序,字段不能为text字段,否则报错

1.1.5 多条件查询及范围匹配

{
"query":{
"bool":{
"should":[
                {
"match":{
"name":"zy"                    }
                },
                {
"match":{
"age":"8"                    }
                }
            ],
"filter":{
"range":{
"age":{
"gt":20                    }
                }
            }
        }
    }
}


bool为多个条件,可以为should/must,should==or,must==and

filter过滤数据,增加范围匹配,gt大于关系


1.1.6 全文检索

{
"query": {
"match": {
"name": "尧"        }
    }
}


match关键字是全文检索,会把查询的关键词进行分词后,在匹配每个词项

match_phrase是把关键词分词后,匹配每个词项,还有位置,也可以理解为不分词匹配


1.1.7 高亮显示

{
"query": {
"match": {
"name": "张李"        }
    },
"highlight":{
"fields":{
"name":{}
        }
    }
}


会对查询的结果进行关键字高亮显示,其实就是返回一个特殊的标记,如下

1.2 聚合查询

1.2.1 分组查询

{
"aggs": {
"count": { // 分桶桶名"terms": { // 操作类型"field": "age"//哪个字段            }
        }
    },
"size": 0//不要原始数据}


根据age分组,取数量


1.2.2 取平均值

{
"aggs": {
"avg": { // 桶名"avg": { // 取平均值"field": "age"            }
        }
    },
"size": 0}


获取年龄的平均值

目录
相关文章
|
7月前
|
搜索推荐 Java Shell
1.全文检索
1.全文检索
|
存储 SQL 搜索推荐
01全文检索技术介绍
01全文检索技术介绍
90 0
|
数据采集 存储 Java
02Lucene实现全文检索的流程
02Lucene实现全文检索的流程
52 0
|
自然语言处理 算法 UED
全文搜索
全文搜索树设计思路
126 0
|
存储 自然语言处理 NoSQL
使用Redisearch实现的全文检索功能服务
“检索”是很多产品中无法绕开的一个功能模块,当数据量小的时候可以使用模糊查询等操作凑合一下,但是当面临海量数据和高并发的时候,业界常用 elasticsearch 和 lucene 等方案,但是elasticsearch对运行时内存有着最低限额,其运行时大小推荐 2G 以上的内存空间,并且需要额外的磁盘空间做持久化存储。
使用Redisearch实现的全文检索功能服务
|
SQL 存储 搜索推荐
什么是全文检索
全文检索技术被广泛的应用于搜索引擎,查询检索等领域。我们在网络上的大部分搜索服务都用到了全文检索技术。 对于数据量大、数据结构不固定的数据可采用全文检索方式搜索,比如百度、Google等搜索引擎、论坛站内搜索、电商网站站内搜索等。
648 0
什么是全文检索
|
存储 SQL 自然语言处理
sphinx全文检索引擎
sphinx全文检索引擎
169 0
Lucene: 全文检索的基本原理
转自:http://blog.csdn.net/forfuture1978/archive/2009/10/22/4711308.aspx 转自:https://www.
793 0
|
存储 SQL 数据库