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 的使用
RocketBot 的使用 | 学习笔记
|
SQL 开发框架 JSON
honeycomb使用|学习笔记
快速学习honeycomb使用
709 0
honeycomb使用|学习笔记
|
NoSQL MongoDB 开发者
故障测试2|学习笔记
快速学习故障测试2
故障测试2|学习笔记
|
算法 计算机视觉
OpenCV学习笔记--SIFT,SUFT
图像处理两大特征提取算法
152 0
|
Java 开发工具 C++
notepad++ 介绍|学习笔记
快速学习 notepad++ 介绍
notepad++ 介绍|学习笔记
|
C++ 开发者 Python
|
机器学习/深度学习 算法 开发者
总结与回顾| 学习笔记
快速学习总结与回顾。
|
存储 Java 开发者
BinaryTree|学习笔记
快速学习BinaryTree
BinaryTree|学习笔记
|
运维 监控 JavaScript
什么是 ChatOps | 学习笔记
快速学习什么是 ChatOps
578 0
|
开发者
SearchType 详解 | 学习笔记
快速学习 SearchType 详解