termQuery | 学习笔记

简介: 快速学习 termQuery

开发者学堂课程【ElasticSearch 入门精讲termQuery学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/631/detail/10008


termQuery


内容介绍:

一、前言

二、演示


一、前言

词条查询是 Elasticsearch 中的一个简单查询。它仅匹配在给定字段中含有该词条的文档,而且是确切的、未经分析的词条。

termQuery("key", obj)完全匹配

termsQuery("key" , obj1, obj2...)一次匹配多个值,只要有一个值是正确的,就可以查询出数据

//SearchResponsesearchResponse= client.prepareSearch("blog2").

setTypes("article")

//.setQuery(QueryBuilders.termQuery("content","

搜索")).get(

);

SearchResponsesearchResponse= client.prepareSearch("blog2").

setTypes("article")

.setQuery(QueryBuilders.termsQuery("content","搜索","全文")).get();

SearchHits hits = searchResponse.getHits();//获取命中次数,查询结果有多少对象

二、演示

在 Test.java 中输入

/**

*词条检索之  termQuery

*

*需求: 使用 termQuery,查询出 author 中包含有“天”,且包含有“下”的索引信息。

*/

@Test

public void testTermQuery(){

//查询

SearchResponse response = client.prepareSearch(INDEX)

.setTypes(TYPE).setQuery(QueryBuilders.termsQuery(name:"author, ...values:"天","下"))

.get();

//显示检索到的信息

SearchHits hits = response.getHits();

for (SearchHit hit : hits){

System.out.println(hit.getSourceAsString());

}

}

运行结果显示

{“name”: “storm”, “author”: “睥睨天下”, “version”: “2.4.6”}

如果查 “天下”呢?修改

.setQuery(QueryBuilders.termsQuery(name:"author, ...values:"天下"))

查询不到,我们看来天下是一个词,但其实天是一个词,下是一个词,需要单独安装分词插件用来确定天下是一个词才可以

相关文章
|
Java 应用服务中间件 数据库
RocketBot 的使用 | 学习笔记
快速学习 RocketBot 的使用
364 0
RocketBot 的使用 | 学习笔记
|
8月前
|
消息中间件 存储 NoSQL
|
开发者
整合的实现 | 学习笔记
快速学习整合的实现.
整合的实现 | 学习笔记
|
消息中间件 SQL 负载均衡
总结|学习笔记
快速学习总结
77 0
总结|学习笔记
|
机器学习/深度学习 算法 开发者
总结与回顾| 学习笔记
快速学习总结与回顾。
91 0
|
JSON 分布式计算 Hadoop
boolQuery | 学习笔记
快速学习 boolQuery
87 0
boolQuery | 学习笔记
|
分布式计算 流计算 Spark
wildcardQuery | 学习笔记
快速学习 wildcardQuery
95 0
wildcardQuery | 学习笔记
|
开发者 Python
In 和 not in 的使用 | 学习笔记
快速学习 In 和 not in 的使用
106 0
|
XML 数据格式
学习笔记1
学习笔记1
86 0
|
存储 Java 开发者
BinaryTree|学习笔记
快速学习BinaryTree
BinaryTree|学习笔记