复合查询除布尔查询,还有其他查询,可见官网:https://www.elastic.co/guide/en/elasticsearch/reference/current/compound-queries.html

布尔查询支持的子查询类型共有四种,分别是:
查询上下文:

  • must:文档必须匹配must查询条件,贡献评分
  • should:文档应该匹配should子句查询的一个或多个,贡献评分
    过滤上下文:
  • must_not:文档不能匹配该查询条件,不贡献评分
  • filter:过滤器,文档必须匹配该过滤条件,跟must子句的唯一区别是,filter不贡献评分;

match Query:全文匹配,先分词再匹配,用于模糊查询

term Query:精准查询

单条件查询

{
“query”: {
“bool”: {
“filter”: {
“term”: {
“SourceName”: “料斗温度”
}
}
}
}
}

多查询条件 and

{
“query”: {
“bool”: {
“filter”: [
{
“range”: {
“Time”: {
“lt”: 1663921028000
}
}
},
{
“term”: {
“SourceName”: “料斗温度”
}
}
]
}
}
}

###

你真的需要在查询时对文档进行评分吗?

Filter

搜索精确值、范围值

Query

模棱两可的结果,全文搜索

term在查询时只能精确查询,match是全文查询,而字段类型为keyword的内容不管用哪种方式,都只能精确查询