(12)ElasticSearch 基本查询(Query查询)

1、数据准备

PUT /lib3
{
    "settings":{
        "number_of_shards":3,
        "number_of_replicas":0
      },
        "mappings":{
            "user":{
                "properties":{
                    "name":{"type":"text"},
                    "address":{"type":"text"},
                    "age":{"type":"integer"},
                    "interests":{"type":"text"},
                    "birthday":{"type":"date"}
                }
            }
        }
}
put /lib3/user/1
{
    "name":"zhaoliu",
    "address":"hei long jiang sheng tie ling shi",
    "age":50,
    "birthday":"1970-12-12",
    "interests":"xi huang hejiu,duanlian,lvyou"
}

put /lib3/user/2
{
    "name":"zhaoming",
    "address":"bei jing hai dian qu qing he zhen",
    "age":20,
    "birthday":"1998-10-12",
    "interests":"xi huan hejiu,duanlian,changge"
}

put /lib3/user/3
{
    "name":"lisi",
    "address":"bei jing hai dian qu qing he zhen",
    "age":23,
    "birthday":"1998-10-12",
    "interests":"xi huan hejiu,duanlian,changge"
}

put /lib3/user/4
{
    "name":"wangwu",
    "address":"bei jing hai dian qu qing he zhen",
    "age":26,
    "birthday":"1998-10-12",
    "interests":"xi huan biancheng,tingyinyue,lvyou"
}

put /lib3/user/5
{
    "name":"zhangsan",
    "address":"bei jing chao yang qu",
    "age":29,
    "birthday":"1988-10-12",
    "interests":"xi huan tingyinyue,changge,tiaowu"
}

2、查询

  GET /lib3/user/_search?q=name:lisi  查询name是lisi的记录

  GET /lib3/user/_search?q=interests:changge&sort=age:desc  查询兴趣包含唱歌的,并且按照年龄倒序排序

  term、terms查询:

  term query会去倒排索引中寻找确切的term,它并不知道分词器的存在,这种查询适合keyword、numeric、date。

  term:查询某个字段里含有某个关键词的文档

  (1)查询name是zhaoliu的:

GET /lib3/user/_search/
{
    "query":{
        "term":{"name":"zhaoliu"}
    }
}

  (2)查询兴趣包含喝酒或者唱歌的:

get /lib3/user/_search
{
    "query":{
        "terms":{
            "interests":["hejiu","changge"]
        }
    }
}

  (3)查询兴趣包含喝酒或者唱歌的,下标从0开始,取出两个:

get /lib3/user/_search
{
    "from":0,
    "size":2,
    "query":{
        "terms":{
            "interests":["hejiu","changge"]
        }
    }
}

原文地址:https://www.cnblogs.com/javasl/p/11405387.html

时间: 2024-08-02 14:51:15

(12)ElasticSearch 基本查询(Query查询)的相关文章

elasticsearch 查询 query

对于 类型是 text的字段,并且分析器指明是ik_max_word的会建立倒排索引 查询的分类: match查询:  会自动转换大小写,会分词, term查询: 不会转换和分词,只能值匹配 terms查询: 可以给字段值传入数组, 这里有没有分词呢??????????应该和term一样的只会值匹配吧,要不为啥叫terms,待验证 控制查询的数量,  from,和size属性指明,可以用来分页 match_all: 搜索索引下的所有type match_phrase: 满足分词后的所有词, sl

Hibernate5-投影查询,分组查询,Query的List和Iterate

1.创建项目,项目名称hibernatedemo9,目录结构如图所示 2.在项目中创建lib目录存储jar文件,目录结构如图所示 3.在src目录中创建实体Bean Forum,包名(com.mycompany.demo.bean),如图所示 4.实体Bean Forum的内容如下 package com.mycompany.demo.bean; public class Forum { private int fid; private String name; private int issh

elasticsearch的rest搜索--- 查询

目录: 一.针对这次装B 的解释 二.下载,安装插件elasticsearch-1.7.0   三.索引的mapping 四. 查询 五.对于相关度的大牛的文档 四. 查询 1. 查询的官网的文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html 2.  查询的rest格式 3.  介绍用过的查询方式 一般的查询 http://blog.csdn.net/dm_vincent/article/d

ElasticSearch入门3: 高级查询

尊重原创:https://www.cnblogs.com/liuxiaoming123/p/8124969.html 单字段 模糊匹配查询与精准查询 postman请求 POST 127.0.0.1:9200/book/_search 请求json: { "query":{ "match":{ "name":"晓明9" } } } 注:match 模糊查询的标识 :查询内容自动拆分成分词来查询 若match 改为 match_

ElasticSearch常用操作:查询与聚合篇

[TOC] 0 说明 基于es 5.4和es 5.6,列举的是个人工作中经常用到的查询(只是工作中使用的是Java API),如果需要看完整的,可以参考官方相关文档https://www.elastic.co/guide/en/elasticsearch/reference/5.4/search.html. 1 查询 先使用一个快速入门来引入,然后后面列出的各种查询都是用得比较多的(在我的工作环境是这样),其它没怎么用的这里就不列出了. 1.1 快速入门 1.1.1 查询全部 GET index

解决query查询输入geometry参数查询不到而通过where条件可以查到的问题

解决query查询输入geometry参数查询不到而通过where条件可以查到的问题 原因: 是因为geometry的坐标系和所要查询的图层不一样导致的(问题引起是由于底图中叠加了不同的坐标系的引起的) 问题描述: 我在公司做好的功能并且测好了,到现场出了问题,发现通过where语句查询时正常的,拉宽查询不正常.并且通过网页打开图层查询请求页面,手动输入代码中得到的geometry查询是可以查到数据的. 问题解决过程: 通过fiddler跟踪请求的http路径(因为arcgisAPI请求arcg

delphi中用Table表组件和Query查询组件配合进行的增删改查

一.打开数据库表进入检索状态 var Table1:TTable; //定义Table1为TTable类型的变量 begin Table1:=TTable.Create(self);//自建表 Table1:=DatabaseName:='rsgl';//数据库名 Table1:=TableName:='operator.db' //打开数据库Table表 文件名是"operator.db" Table1.Open;   //Table1表开启状态 Table1.SetKey; //将

Hibernate 中Criteria Query查询详解【转】

当查询数据时,人们往往需要设置查询条件.在SQL或HQL语句中,查询条件常常放在where子句中.此外,Hibernate还支持Criteria查询(Criteria Query),这种查询方式把查询条件封装为一个Criteria对象.在实际应用中,使用Session的createCriteria()方法构建一个org.hibernate.Criteria实例,然后把具体的查询条件通过Criteria的add()方法加入到Criteria实例中.这样,程序员可以不使用SQL甚至HQL的情况下进行

Lucene 查询(Query)子类

QueryParser(单域查询) QueryParser子类对单个域查询时创建查询query,构造方法中需要传入Lucene版本号,检索域名和分词器. QueryParser parser = new QueryParser(Version.LUCENE_43, field, analyzer);// 查询字符串 Query query = parser.parse("key"); MultiFieldQueryParser(多域查询) MultiFieldQueryParser p

[Elasticsearch] 全文搜索 (二) - 多词查询及查询的合并

多词查询(Multi-word Queries) 如果我们一次只能搜索一个词,那么全文搜索就会显得相当不灵活.幸运的是,通过match查询来实现多词查询也同样简单: GET /my_index/my_type/_search { "query": { "match": { "title": "BROWN DOG!" } } } 以上的查询会返回所有的四份文档: { "hits": [ { "_id