ElasticSearch: 搜索时注意类型匹配

假设索引中存在如下字段,其值为double类型(默认值为: 0.0):

1
2
3
"speed" : {
          "type" : "keyword"
        }

在搜索时应该写成如下格式(搜索条件为: 0.0 ):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
GET /es_info/_search
{
  "query": {
    "bool": {
      "must": [
        {"term": {
          "phone": "13906666666"
        }},
        {"term": {
          "speed": 0.0
        }}
      ]
    }
  }
}

Java:

1
2
3
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.must(QueryBuilders.termQuery("phone", "13906666666"));
queryBuilder.must(QueryBuilders.termQuery("speed", 0.0));