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:"天下"))

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

相关文章
|
SQL 开发框架 JSON
honeycomb使用|学习笔记
快速学习honeycomb使用
689 0
honeycomb使用|学习笔记
|
存储 C语言 C++
C++学习笔记(day1)
C++学习笔记(day1)
|
NoSQL MongoDB 开发者
故障测试_1|学习笔记
快速学习故障测试_1
故障测试_1|学习笔记
|
分布式计算 前端开发 Java
wildcardQuery|学习笔记
快速学习 wildcardQuery。
385 0
wildcardQuery|学习笔记
|
分布式计算 前端开发 Java
RegexpQuery|学习笔记
快速学习 RegexpQuery。
245 0
RegexpQuery|学习笔记
|
负载均衡 开发者 索引
replicas | 学习笔记
快速学习 replicas
replicas | 学习笔记
|
C++ 开发者 Python
|
存储 自然语言处理 算法
课程计划|学习笔记
快速学习课程计划
|
XML 设计模式 JavaScript
回顾 | 学习笔记
快速学习回顾,介绍了回顾系统机制, 以及在实际应用过程中如何使用。
|
存储 Java 开发者
BinaryTree|学习笔记
快速学习BinaryTree
BinaryTree|学习笔记
下一篇
无影云桌面