开发者学堂课程【ElasticSearch 最新快速入门教程:TermQuery】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/642/detail/10656
TermQuery
内容介绍
一、 ES JavaAPI_termQuery
二、 案例实操
一、 ES JavaAPI regexpQuery
词条查询是 Elasticsearch 中的一个简单查询。它仅匹配在给定字段中含有该词条的文档,而且是确切的、未经分析的词条
(1) termQuery
termQuery(“key”,obj)完全匹配
termQuery(“key”,obj1,obj2…)一次匹配多个值,只要有一个值是正确的,就可以查询出数据
例1:包含“搜索”的内容检索
//
search
R
esponse
search
R
esponse=client.
prepareSearch
(“blog2”
)
.set
T
ypes
(
“article”
)
//
.set
Q
uery
(QueryB
uilders.
termQuery(
“content”,“搜索”
))
.
get()
;
例2:包含“搜索”和“全文”的内容检索
searchResponse searchResponse=client.prepareSearch(
“
blog2
”
).setTypes(
“
article
”
)
.setQuery(QueryBuilders.termQuery(“content”,“搜索”,“全文”)).get();
Search
H
its
hits=search
R
esponse.
getHits
(
);
//获取命中次数,查询结果有多少对象
二、 案例实操
(1) 词条检索之 termQuery
需求:使用 termQuery,查询出author中包含有“天”,且包含有“下”的索引信息。
@
T
est
public void testT
erm
Query(){
//查询
SearchResponse response=client.prepareSearch(INDEX)
.setTypes(TYPE)
.setQuery(QueryBuilders.termsQuery(name:“author”,
…values:“天”,“下”))
.get();
运行结果
“C:\Program Files\Java\jdk1.8.0_131\bin\java.exe”…
前端处理操作,用于进行全局的初始化…
{“name”:“storm”,“author”:“睥睨天下”,“version”:“2.4.6”}
后处理操作,用于进行资源的释放…
注:
若要单独查询“天下”,则需要安装分词插件,因为西方的习惯不认为“天下”是一个词,只有单独一个字才能算一个词。
(2) 数据库附图