基本查询(Query查询中文)

 

查询语句: 

GET /lib4/user/_search
{"query": {"term": {"interests":"唱歌"}}
}#terms:查询某个字段里含有多个关键词的文档
GET /lib4/user/_search 
{"query":{"terms":{"interests": ["喝酒","唱歌"]}}
}

 数据准备:

#2.7.1数据准备
PUT /lib4
{ "settings":{"number_of_shards" : 3, "number_of_replicas" :0},"mappings":{"user":{"properties":{"name": {"type":"text","analyzer":"ik_max_word"}, "address": {"type":"text","analyzer": "ik_max_word"},"age": {"type" :"integer"},"interests": {"type":"text","analyzer": "ik_max_word"},"birthday": {"type":"date"}}}}
}

 

#ik芾有两个分词器
#ik_max_word :会将文本做最细粒度的拆分;尽可能多的拆分出词语
#ik_smart:会做最粗粒度的斥分;已被分出的词语将不会再次被其它词语占有
#2.7.2 term查询和terms查询
#term query会去倒排索引中寻找确切的term,它并不知道分词器的存在。
#这种查询适合keyword、numeric、date.
#term:查询某个字段里含有某个关键词的文档

添加5个文档: 


PUT /lib4/user/1
{"name" : "赵六","address" : "黑龙江省 铁岭","age" : 50,"birthday" : "1970-12-12","interests": "喜欢喝酒,锻炼,说相声"
}PUT /lib4/user/2
{"name" :"赵明","address" :"北京海淀区清河","age" : 20,"birthday" : "1998-10-12" ,"interests": "喜欢喝酒,锻炼,唱歌"
}PUT /lib4/user/3
{"name" : "lisi","address" :"北京海淀区清河","age" : 23,"birthday" : "1998-10-12","interests": "喜欢喝酒,锻炼,唱歌"
}PUT /lib4/user/4
{"name" :"王五","address" : " 北京海淀区清河","age" : 26,"birthday" : "1995-10-12","interests": "喜欢编程,听音乐,旅游"
}PUT /lib4/user/5
{"name" : "张三","address" :"北京海淀区清河","age" : 29,"birthday" : "1988-10-12","interests": "喜欢摄影,听音乐,跳舞"
}

term和terms查询 

term是代表完全匹配,即不进行分词器分析,文档中必须包含整个搜索的词汇

#term和terms查询
#查询字段中含有赵的
GET /lib4/user/_search
{"query": {"term": {"name":"赵"}}
}#指定多个关键字,只要包含其中一个就会被查询出来
GET /lib4/user/_search
{"query":{"terms":{"interests": ["喝酒","唱歌"]}}
}#控制返回的数据条数  取前2条
GET /lib4/user/_search
{"from":0,"size": 2, "query":{"terms":{"interests": ["喝酒","唱歌"]}}
}#版本号的返回
GET /lib4/user/_search
{"version":true,"query":{"terms":{"interests": [" 喝酒", "唱歌"]}}
}

match查询  match是知道分词器存在的这个之前就讲过

赵六会被分词为两个词  含有赵和六的都会被查询出来

#match查询
GET /lib4/user/_search
{"query":{"match":{"name": "赵六"}}
}

然后对于数字型的是不会被分词的比如查询年龄20的  这个不会被分成2和0  所以查询结果会去从文档匹配年龄为20的信息

GET /lib4/user/_search
{"query":{"match":{"age": 20}}
}GET /lib4/user/_search
{"query": {"match_all": {}}
}

 

#multi_match指定多个字段关键字匹配  ;match_phrase短语精确匹配 ;_source指定查询结果返回的字段信息

#指定多个字段匹配
GET /lib4/user/_search
{"query":{"multi_match": {"query": "唱歌","fields": ["interests", "name"]}}
}#短语匹配
GET lib4/user/_search
{"query":{"match_phrase" :{"interests": "锻炼,说相声"}}
}#返回指定的字段
GET /lib4/user/_search
{"_source": ["address" , "name"],"query": {"match": {"interests": "唱歌"}}
}

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576560.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#实现POST提交方式

网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,可以用来提取网页HTML的组件比较多,常用的用WebBrowser、WebClient、HttpWebRequest这三个。 以下就分别用这三种方法来实现: 1、WebB…

最优化学习笔记(十三)——基本共轭方向算法(扩张子空间定理)

由上节我们得出的一个引理: 引理 在共轭方向算法中, 对于所有的k,0≤k≤n−1,0≤i≤k都有 : g(k1)Td(i)0\boldsymbol{g}^{(k+1)T}\boldsymbol{d}^{(i)}=0由上可知:g(k1)正交于由向量d(0),d(1),…,d(k)张成的子空间中的任意向量。该引理可用…

term和match查询总结(中文检索)

es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL)。 由于DSL查询更为直观也更为简易,所以大都使用这种方式。 DSL查询是POST过去一个json,由于…

机器学习笔记(十九)——最大熵原理和模型定义

一、最大熵原理 最大熵原理是概率模型学习的一个准则。最大熵原理认为,在学习概率模型时,在所有可能的概率分布中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵模型也可以表述为在满足约…

EasyCode.Net代码生成器使用心得

前段时间购买了一个EasyCode的正式使用许可 看他的界面设计的不错 就用他生成了一个项目(目地是想把以前我自己的一个程序的界面给更换下 人家有专业的UI设计我自己设计出来的肯定没有人家专业UI设计师弄出来的好看) ,项目生成完了 发现还不能直接更换界面他的是sq…

ElasticSearch(中文检索)source总结

包含不包含这里不多讲了。 GET /lib4/user/_search {"query": {"match_all": {}},"_source": {"includes": ["name" ,"address"],"excludes": ["age" , "birthday" ]} }直接看看…

2012 依赖注入框架

以下内容来自维基百科的控制反转词条 控制反转(英语:Inversion of control,缩写为IoC),也叫做依赖注入(Dependency Injection,简称DI),是面向对象编程中的一种设计原则&a…

机器学习笔记(二十)——求解最大熵模型

一、问题的引出 最大熵模型的学习过程就是求解最大熵模型的过程。最大熵模型的学习可以形式化为约束最优化问题。 对于给定的训练数据集T{(x1,y1),(x2,y2),…,(xn,yn)}及特征函数fi(x,y),i1,2,…,n,最大熵模型的学习等价于约束最优化问题: maxP∈C…

ElasticSearch前缀匹配查询和范围查询(中文检索)

GET /lib4/user/_search {"query": {"match_phrase_prefix": {"name": {"query": "赵"}}} } GET /lib4/user/_search {"query": {"prefix": {"name": "赵"}} }范围查询 GET /lib4…

系统管理员必须知道的PHP安全实践

系统管理员必须知道的PHP安全实践 PHP是一种开源服务器端脚本语言,应用很广泛。Apache web服务器提供了这种便利:通过HTTP或HTTPS协议, 访问文件和内容。配置不当的服务器端脚本语言会带来各种各样的问题。所以,使用PHP时要小心。…

ElasticSearch模糊查询(中文检索)

# "*" 表示匹配任意字符 GET /lib4/user/_search {"query": {"wildcard": {"name": "赵*"}} }# "?" 表示匹配任意一个字符 GET /lib4/user/_search {"query": {"wildcard": {"name&quo…

最优化学习笔记(十四)——共轭梯度法

共轭梯度法不需要预先给定Q共轭方向,而是随着迭代的进行不断产生Q共轭方向。在每次的迭代中,利用上一个搜索方向和目标函数在当前迭代点的梯度向量 之间的线性组合构造一个新的方向,使其与前边已经产生的搜索方向组成Q共轭方向。对于一个n维二…

ElasticSearch filter查询

学习查询之前,我还是老规矩,先准备数据 #Filter查询 #filter是不计算相关性的,同时可以cache.因此,filter速度要快于query. POST /lib5/items/_bulk {"index":{"_id": 1}} {"price": 40,"ite…

SQL Server 2005中的分区表(四):删除(合并)一个分区

在前面我们介绍过如何创建和使用一个分区表,并举了一个例子,将不 同年份的数据放在不同的物理分区表里。具体的分区方式为: 第1个小表:2010-1-1以前的数据(不包含2010-1-1)。 第2个小表:2010-1-…

最优化学习笔记(十五)——拟牛顿法(1)

拟牛顿法分为五部分来讲,本文这部分作为引言,第二部分讲Hessian矩阵逆矩阵的近似,第三部分秩1修正公式,第四部分为DFP算法,最后BFGS算法。 牛顿法是一种具有较高实用性的优化问题的求解方法。牛顿法如果收敛&…

深入理解java虚拟机 (一) 第二版

前言: Java是目前用户最多、使用范围最广的软件开发技术之一。Java 的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java API、 Java编程语言及许多第三方Java框架(如Spring、Struts 等)构成。在国内,有关Java API Java语言语法及…

畅通您的iOS开发之路

随着大家对苹果产品的趋之若鹜,iphone与ipad软件开发的前景也相当广阔。然而,目前精通iOS开发的专业人才却是凤毛麟角。因此,安博中 程在2012年推出重磅课程——“iPhone与iPad开发实战之路——精通iOS开发”高级培训班,为想从事i…

深入理解java虚拟机 (二) 第二版

如何阅读本书 本书-共分为五个部分:走近Java、自动内存管理机制、虛拟机执行子系统、程序编译与代码优化、高效并发。各部分基本上是互相独立的,没有必然的前后依赖关系,读者可以从任何- -个感兴趣的专题开始阅读,但是每个部分中的各个章节间…

最优化学习笔记(十六)——拟牛顿法(2)

Hessian矩阵逆矩阵的近似 一、拟牛顿法的基本思路 令H0,H1,H2,…表示Hessian矩阵逆矩阵F(x(k))−1的一系列近似矩阵。我们要讨论的是这些近似矩阵应该满足的条件,这是拟牛顿法的基础。首先,假定目标函数f的Hessian矩阵F(x)是常数矩阵,与x无关…

tool vmmap 配置符号文件 symbolic file

转载于:https://www.cnblogs.com/titer1/archive/2012/03/21/2410316.html