Фильтр Elasticsearch (числовое поле) ничего не возвращает

Тип сопоставления

{
  "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 ответ

Имя типа не соответствует вашему сообщению (poi а также pois_poi) - возвращенный документ не соответствует вашему отображению.

Другие вопросы по тегам