1. Term 查询
用途:
- 当你需要精确匹配某个字段的值时。
- 当字段值是单一的,不需要全文搜索。
示例:
查找所有品牌为“Toyota”的汽车:
{
"query": {
"term": {
"brand": "Toyota"
}
}
}
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.termQuery("brand", "Toyota"));
2. Terms 查询
用途:
- 当你需要匹配多个值时。
- 适用于需要查询多个特定值的场景。
示例:
查找品牌为“Toyota”或“Honda”的汽车:
{
"query": {
"terms": {
"brand": ["Toyota", "Honda"]
}
}
}
TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("brand", "Toyota", "Honda");
searchSourceBuilder.query(termsQueryBuilder);
3. Range 查询
用途:
- 当你需要查询数值或日期范围时。
- 适用于价格区间、日期范围等场景。
示例:
查找价格在10000到20000之间的汽车:
{
"query": {
"range": {
"price": {
"gte": 10000,
"lte": 20000
}
}
}
}
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("price").gte(10000).lte(20000);
searchSourceBuilder.query(rangeQueryBuilder);
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Elasticsearch提供的多种查询方式
发表评论 取消回复