(资料图片)
Term Query是一种最基本的查询方式,它用于在Elasticsearch中查询一个字段中包含指定关键词的文档,与MySQL中的等值查询类似。使用Term Query时,可以对字段进行完全匹配,且区分大小写。
GET /{index}/_search { "query": { "term": { "{field}": "{value}" } } }
其中,{index}表示查询的索引名称,{field}表示需要查询的字段,{value}表示需要匹配的值。
// TODO 省略导入包 import java.io.IOException; public class TermQueryExample { public static void main(String[] args) throws IOException { RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("localhost", 9200, "http"))); SearchRequest searchRequest = new SearchRequest("my_index"); // 这里的searchSourceBuilder 相当于 query:{} SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); // query:{term:{"field_name":"field_value"}} searchSourceBuilder.query(QueryBuilders.termQuery("field_name", "field_value")); searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); searchRequest.source(searchSourceBuilder); // 执行查询 SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); // TODO: 解析搜索结果 client.close(); } }
term查询只能用于匹配该属性的单个值,若想匹配多个值,可以用terms查询
GET /{index}/_search { "query": { "terms": { "{field}": [ "{value1}", "{value2}", "{value3}" ] } } }
SearchRequest searchRequest = new SearchRequest("index"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); // 注意这里是使用termsQuery("field",value1,value2) TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("field", "value1", "value2", "value3"); searchSourceBuilder.query(termsQueryBuilder); searchRequest.source(searchSourceBuilder); SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
Term Query还有其他的一些设置参数,比如:
boost参数:可以为查询结果设置权重,提高或降低查询结果的得分,影响查询结果的排名。case_insensitive参数:设置是否对查询进行大小写不敏感的匹配。rewrite参数:控制查询的rewrite策略,主要用于控制查询性能,缓存占用等方面。index参数:控制是否在查询时使用倒排索引,以及使用哪些倒排索引进行查询。使用Term Query时需要注意以下几点:
仅匹配完全匹配的关键字。字段必须是不分词的。通常情况下,不需要将关键字转换为小写字母,因为Term Query不会将关键字转换为小写字母。总之,Term Query非常适合用于对某个字段进行精确匹配的场景。如果您想进行模糊匹配或全文搜索,请考虑使用Match Query。
以上就是Elasticsearch查询之Term Query示例解析的详细内容,更多关于Elasticsearch Term查询的资料请关注脚本之家其它相关文章!
X 关闭
2021年北向资金流入超4300亿元 外资热情拥抱中国资产
尽管面临疫情反复等多重不利因素,外资在2...北交所董事长徐明:北交所成立以来股票平均上涨98.9%
北京证券交易所董事长徐明8日表示,北交所...宁吉喆:2021年中国GDP将连续第二年超百万亿元
中国国家发改委副主任兼中国国家统计局...中国黄金消费市场渐回暖 “古法金”饰品获年轻消费者青睐
2022世界珠宝发展大会正在海口举行。8日在...观察:中国首条民营控股高铁开通之“时”与“势”
杭台高铁首趟列车即将发车。张煜欢摄1月8...中国生态环境保护实现“十四五”起步之年良好开局
中国生态环境部7日在北京召开2022年全国...人社部发布信用管理师国家职业技能标准
近日,人力资源和社会保障部对外发布了《...云南永善佛滩顺河梯级电站全面推进建设
日前,云南省永善县顺河村举行了佛滩顺河...中老铁路的背后 “税务专车”一路同行
2021年12月3日中老铁路正式开通运营,仅需...哈啰出行投资成立装饰工程公司 注册资本200万元
企查查APP显示,3月18日,上海钧住装饰工程有限公司成立,法定代表...Copyright © 2015-2022 华东建筑工程网版权所有 备案号:京ICP备2022016840号-41 联系邮箱:2 913 236 @qq.com