Elasticsearch过滤器(数字字段)不返回任何内容

时间:2015-01-02 02:58:50

标签: django elasticsearch elasticutils

类型映射

{
  "pois-en": {
    "mappings": {
      "poi": {
        "properties": {
           "address": {
              "type": "string",
              "analyzer": "portuguese"
           },
           "city": {
              "type": "integer"
           },
           (...)
           "type": {
              "type": "integer"
           }
        }
      }
    }
  }
}

全部查询:

GET pois-en/_search
{
  "query":{
    "match_all":{}
  },
  "fields": ["city"]
}

返回:

"hits": [
     {
        "_index": "pois-en",
        "_type": "pois_poi",
        "_id": "491",
        "_score": 1,
        "fields": {
           "city": [
              91
           ]
        }
     },
     (...)

但是当我使用:

过滤时
GET pois-en/_search
{
    "query" : {
        "filtered" : { 
            "query" : {
                "match_all" : {} 
            },
            "filter" : {
                "term" : { 
                    "city" : 91
                }
            }
        }
    }
}

它没有返回任何内容!

我无法弄清楚我做错了什么。 对于Django和Elasticsearch的通信我是Elasticutils(https://github.com/mozilla/elasticutils),但我现在正在使用Sense来进行这些查询。

提前致谢

1 个答案:

答案 0 :(得分:1)

您的帖子(poipois_poi)中的类型名称不一致 - 返回的文档与您的映射不匹配。