QueryBuilders.termQuery
时间: 2023-08-27 12:25:28 浏览: 284
`QueryBuilders.termQuery` 是 Elasticsearch Java API 中的一个方法,用于构建精确查询。
精确查询是一种完全匹配查询,只有当查询词与文档字段的值完全相同时,才会匹配到该文档。精确查询适用于短文本、数字、日期等类型的字段。
下面是 `QueryBuilders.termQuery` 的用法示例:
```java
QueryBuilder queryBuilder = QueryBuilders.termQuery(
"field",
"value"
);
```
上面的代码中,我们首先调用 `QueryBuilders.termQuery` 方法,传入两个参数,分别是查询的字段和查询词。其中,查询词为 `"value"`,表示需要精确匹配该值的文档。最后,我们得到了一个 `QueryBuilder` 实例,可以用于构建查询请求。
需要注意的是,`termQuery` 查询是基于倒排索引的,如果查询的字段是分词的,那么可能无法匹配到完全相等的文档。在这种情况下,可以考虑使用 `keyword` 类型的字段或者其他类型的查询方式。
相关问题
es QueryBuilders.termQuery
Elasticsearch中的QueryBuilders.termQuery是一种查询构建器,用于构建精确匹配某个特定词项的查询。它可以用来搜索一个字段中包含特定值的文档。例如,如果你想在名为"title"的字段中查找包含单词"elasticsearch"的文档,可以使用以下代码:
```
QueryBuilders.termQuery("title", "elasticsearch");
```
这将返回一个查询对象,它将匹配所有"title"字段中包含"elasticsearch"的文档。注意,termQuery是大小写敏感的,这意味着它只会匹配与查询完全相同的词项。如果你想进行不区分大小写的匹配,可以考虑使用matchQuery或其他类似的查询构建器。
boolQuery.must(QueryBuilders.termsQuery("cigCode.keyword",cigList)); boolQuery.must(QueryBuilders.termQuery("area.keyword",area));转化成es查询
的DSL语句是什么?
答:以下是转化后的ES查询DSL语句:
{
"bool": {
"must": [
{
"terms": {
"cigCode.keyword": [
"cigList"
]
}
},
{
"term": {
"area.keyword": "area"
}
}
]
}
}
阅读全文