ElasticSearch 基础 2
================================== 高级查询 =========================== ========== 子条件查询 =========== _score: 标记匹配程度, 旨在判断目标文档和查询条件匹配的有多好 POST http://127.0.0.1:9200/book/_search
{
"query": {
"match": {
"title": "ElasticSearch入门"
}
}
}
模糊匹配: 会把包含ElasticSearch和入门的关键词的文档数据都查询出来
{
"query": {
"match_phrase": {
"title": "ElasticSearch入门"
}
}
}
习语匹配: 精准查询
{
"query": {
"multi_match": {
"query": "瓦力",
"fileds": ["author", "title"]
}
}
}
multi_match: 多字段模糊匹配查询
author和title: 只要包含瓦力就查询出来 =========== 语法查询 =============
{
"query": {
"query_string": {
"query": "ElasticSearch AND 大法"
}
}
} query_string: 代表语法查询
query: 指定查询内容
查询出同时含有ElasticSearch和大法
{
"query": {
"query_string": {
"query": "(ElasticSearch AND 大法) OR Python"
}
}
}
查询出同时含有ElasticSearch和大法, 或者含有Python的文档
{
"query": {
"query_string": {
"query": "瓦力 OR ElasticSearch",
"fields": ["title", "author"]
}
}
}
利用query_string 查询多个字段
title或者author 包含瓦力或者ElasticSearch 去不查询出来 =========== 结构化查询 =============
{
"query": {
"term": {
"word_count": 1000
}
}
}
term: 具体项
查询出word_count为1000 的文档
{
"query": {
"range": {
"word_count": {
"gte": 1000,
"lte": 2000
}
}
}
}
range: 范围查询
查询出word_count大于等于1000小于等于2000的文档数据
日期也可以比较大小 可以用now关键词 ============= filter 查询 ============ 只判断文档是否满足条件 只有yes活着no
{
"query": {
"bool": {
"filter": {
"term": {
"word_count": 1000
}
}
}
}
}
word_count为1000的文档才会返回
filter: 过滤, es会对结果进行缓存,相对query较快,需要结合bool来使用 ============= 复合条件查询 结合query和filter ============== ============= 固定分数查询 =========
POST http://127.0.0.1:9200/_search
{
"query": {
"match":{
"title":"ElasticSearch"
}
}
}
_score:分数不一样 es回个模糊匹配一个分数 {
"query": {
"constant_score":{
"filter":{
"match":{
"title": "ElasticSearch"
}
}
}
}
}
constant_score: 固定分数查询
刚刚的书籍都出来了, 但是_score都是1
{
"query": {
"constant_score":{
"filter":{
"match":{
"title": "ElasticSearch"
}
},
"boost": 2
}
}
}
boost:指定分数为2, es会做一下缓存 固定分数查询: 不支持match 支持filter ====== bool 查询 ======
{
"query":{
"bool":{
"should": [
{
"match":{
"author": "瓦力"
} },
{
"match":{
"title": "ElasticSearch"
}
}
]
}
}
} should:应当满足,者的关系,只要满足其中一个就可以
{
"query":{
"bool":{
"must": [
{
"match":{
"author": "瓦力"
} },
{
"match":{
"title": "ElasticSearch"
}
}
]
}
}
} must: 必须同时满足才返回
must_not: 排除 {
"query":{
"bool":{
"must": [
{
"match":{
"author": "瓦力"
} },
{
"match":{
"title": "ElasticSearch"
}
}
],
"filter":[
{
"term":{
"word_count": 1000
}
}
]
}
}
}
must filter 综合运用
ElasticSearch 基础 2的更多相关文章
- ELK(elasticsearch+kibana+logstash)搜索引擎(二): elasticsearch基础教程
1.elasticsearch的结构 首先elasticsearch目前的结构为 /index/type/id id对应的就是存储的文档ID,elasticsearch一般将数据以JSON格式存储. ...
- Elasticsearch 基础入门
原文地址:Elasticsearch 基础入门 博客地址:http://www.extlight.com 一.什么是 ElasticSearch ElasticSearch是一个基于 Lucene 的 ...
- ElasticSearch 基础 1
ElasticSearch 基础=============================== 索引创建 ========================== 1. RESTFUL APIAPI 基本 ...
- Elasticsearch基础但非常有用的功能之二:模板
文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484584&idx=1&sn=accfb65 ...
- 最完整的Elasticsearch 基础教程
翻译:潘飞(tinylambda@gmail.com) 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT) Ela ...
- ELK 之一:ElasticSearch 基础和集群搭建
一:需求及基础: 场景: 1.开发人员不能登录线上服务器查看详细日志 2.各个系统都有日志,日志数据分散难以查找 3.日志数据量大,查询速度慢,或者数据不够实时 4.一个调用会涉及到多个系统,难以在这 ...
- Elasticsearch基础教程
Reference: http://blog.csdn.net/cnweike/article/details/33736429 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概 ...
- elasticsearch基础概念
接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒). 集群(clu ...
- Elasticsearch基础知识分享
1. Elasticsearch背景介绍 Elasticsearch 是一个基于 Lucene 的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口.Elast ...
- Elasticsearch基础教程分享
基础及相关资料 首先我们先了解一下什么是Elastisearch,Elasticsearch(简称es)是一个基于Lucene库的搜索引擎.它提供了一个分布式.支持多租户的全文搜索引擎,具有HTTP ...
随机推荐
- 06.Linux系统-GitLab版本控制服务安装部署
官方文档:https://about.gitlab.com/install/#centos-7 1.yum install -y curl policycoreutils-python openssh ...
- H5微信授权登录
这里介绍H5微信授权登录,采用了微信公众号授权原理,是oauth2的登录授权方式,简单的来讲,就是用户通过手机微信确认登录之后,微信方会返回一个授权码code给回第三方(接入方),这个授权码code一 ...
- Linux-day-1
1. ls 作用:列出文件信息,默认为当前目录下 常用选项: -a: 列出所有的文件,包括所有以.开头的隐藏文件 -d: 列出目录本身,并不包含目录中的文件 ...
- 【转】Linux下的磁盘分区方法
转自:https://www.cnblogs.com/lbole/p/8904298.html 一.硬盘接口类型 硬盘的接口主要有IDE.SATA.SCSI .SAS和光纤通道等五种类型.其中IDE和 ...
- WithEvents的一些用法
WithEvents的一些用法说明:1.WithEvents是指定一个或多个已声明成员变量引用可引发事件的类的实例.2.当某个变量是使用 WithEvents 定义时,可以用声明方式指定某个方法使用 ...
- JavaScript设计模式 样例一 —— 工厂模式
工厂模式(Factory Pattern): 定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类.工厂方法让类的实例化推迟到子类中进行. 目的:工厂模式是为了解耦,把对象的创建和使用 ...
- DDD领域驱动设计初探(二):仓储Repository(上)
前言:上篇介绍了DDD设计Demo里面的聚合划分以及实体和聚合根的设计,这章继续来说说DDD里面最具争议的话题之一的仓储Repository,为什么Repository会有这么大的争议,博主认为主要原 ...
- 在 LaTeX 中同步缩放 TikZ 与其中的 node
PGF/TikZ 是 Till Tantau 开发的基于 TeX 的绘图引擎.因其可以直接在 LaTeX 文稿中通过代码绘制向量图,所以是目前流行的 LaTeX 绘图解决方案之一. 在 tikzpic ...
- mongodb replica set搭建
1/安装mongodb 配置repo: [mongodb-org-3.4]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/red ...
- 使用Hybris Commerce User API读取用户信息时,电话字段没有返回
在使用Hybris Commerce User API读取一个user信息时,我遇到一个问题,在API返回的结构里没有包含期望看到的Phone字段. 仔细观察Swagger里对response结构的说 ...