弹性搜索没有给出结果

时间:2016-06-10 10:59:52

标签: elasticsearch

我已经使用ES一段时间了,但今天不能正常工作。我重新创建了我的docker-compose(可以在那里smt?),这些是我在ES中的数据:

编辑:这是我的输入(这里我_source = False

{'mappings': {'doc': {'_all': {'enabled': False}, 'dynamic': False, 'properties': {u'string': {'index': 'not_analyzed', 'type': 'string'}, '_time': {'index': 'not_analyzed', 'type': 'date'}, u'float': {'index': 'not_analyzed', 'type': 'float'}, u'datetime': {'index': 'not_analyzed', 'type': 'date'}, u'boolean': {'index': 'not_analyzed', 'type': 'boolean'}, u'integer': {'index': 'not_analyzed', 'type': 'long'}}, '_source': {'enabled': False}}}}

架构:

{
  "07533744-b0e6-4a2f-8e94-1f7501589fee": {
    "aliases": {},
    "mappings": {
      "doc": {
        "dynamic": "false",
        "properties": {
          "_time": {
            "type": "date",
            "format": "strict_date_optional_time||epoch_millis"
          },
          "boolean": {
            "type": "boolean"
          },
          "datetime": {
            "type": "date",
            "format": "strict_date_optional_time||epoch_millis"
          },
          "float": {
            "type": "float"
          },
          "integer": {
            "type": "long"
          },
          "string": {
            "type": "string",
            "index": "not_analyzed"
          }
        }
      }
    },
    "settings": {
      "index": {
        "creation_date": "1465555846775",
        "number_of_shards": "5",
        "number_of_replicas": "1",
        "uuid": "-nZGMXbFRryraL0gPnr80g",
        "version": {
          "created": "2030399"
        }
      }
    },
    "warmers": {}
  }
}

match_all查询的文档(部分):

{
  "took": 15,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 10,
    "max_score": 1,
    "hits": [
      {
        "_index": "07533744-b0e6-4a2f-8e94-1f7501589fee",
        "_type": "doc",
        "_id": "49279857-84a7-4570-ad8e-9051079ca0ac",
        "_score": 1,
        "_source": {
          "doc": {
            "string": "1",
            "_time": "2016-06-10T12:50:59.509593",
            "float": 1.1,
            "datetime": "2016-06-10T12:50:59.497620",
            "boolean": false,
            "integer": 1
          }
        }
      },

现在查询: {"query": {"bool": {"must": [{"match": {"integer": 1}}]}}}

返回

{
  "took": 4,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  }
}

知道问题出在哪里?

编辑: 用卷曲查询 curl -XGET -d '{"query": {"bool": {"must": [{"match": {"integer": 1}}]}}}' http://192.168.99.100:9200/07533744-b0e6-4a2f-8e94-1f7501589fee/doc/_search(无结果)

curl -XGET -d '{"query": {"bool": {"must": [{"match": {"_id": "49279857-84a7-4570-ad8e-9051079ca0ac"}}]}}}' http://192.168.99.100:9200/07533744-b0e6-4a2f-8e94-1f7501589fee/doc/_search(得到结果)

2 个答案:

答案 0 :(得分:1)

请尝试term查询:

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "integer": 1
          }
        }
      ]
    }
  }
}

<强>更新

请注意,您的文档不符合您向我们展示的地图。

    "_source": {
      "doc": {
        "string": "1",
        "_time": "2016-06-10T12:50:59.509593",
        "float": 1.1,
        "datetime": "2016-06-10T12:50:59.497620",
        "boolean": false,
        "integer": 1
      }
    }

应该是这样的,即没有doc字段。

    "_source": {
        "string": "1",
        "_time": "2016-06-10T12:50:59.509593",
        "float": 1.1,
        "datetime": "2016-06-10T12:50:59.497620",
        "boolean": false,
        "integer": 1

    }

答案 1 :(得分:1)

尝试您想要的相同查询,但进行一些更改

GET 07533744-b0e6-4a2f-8e94-1f7501589fee/doc/_search
{
   "query": {
      "bool": {
         "should": [
            {
               "match": {
                  "doc.integer": 1
               }
            }
         ]
      }
   }
}

使用 doc.integer 代替整数