ElasticSearch查询始终返回索引中存储的所有数据

时间:2014-06-20 08:55:30

标签: java elasticsearch

我正在尝试索引和查询ES 1.2中的索引存储。我使用transportclient api使用JAVA API创建和填充索引。我有以下映射

get /tp/carte/_mapping
{
   "tp": {
      "mappings": {
         "carte": {
            "properties": {
               "adherents": {
                  "properties": {
                     "birthday": {
                        "type": "date",
                        "format": "dateOptionalTime"
                     },
                     "firstname": {
                        "type": "string"
                     },
                     "lastname": {
                        "type": "string"
                     }
                  }
               },
               "dateEdition": {
                  "type": "date",
                  "format": "dateOptionalTime"
               }
            }
         }
      }
   }
}

当我使用ID搜索ob对象时,它工作正常但是,当我尝试查询其中一个嵌套对象的内容时, ES始终返回存储在索引中的所有对象。 我也尝试用sense手动创建对象,我也有相同的行为。

我的插入示例

post /tp/carte/20454795
{
               "dateEdition": "2014-06-01T22:00:00.000Z",
               "adherents": [
                  {
                     "birthday": "1958-05-05T23:00:00.000Z",
                     "firstname": "ANDREW",
                     "lastname": "DOE"
                  },
                  {
                     "birthday": "1964-03-01T23:00:00.000Z",
                     "firstname": "ROBERT",
                     "lastname": "DOE"
                  },
                  {
                     "birthday": "1989-02-27T23:00:00.000Z",
                     "firstname": "DAVID",
                     "lastname": "DOE"
                  },
                  {
                     "birthday": "1990-12-11T23:00:00.000Z",
                     "firstname": "JOHN",
                     "lastname": "DOE"
                  }
               ]
            }

最后,你可以在下面找到一个在意义上执行的查询

get /tp/carte/_search
{
  "query": {
    "bool": {
      "must": [        
        {
          "match": {
            "adherents.lastname": {
              "query": "DOE"
            }
          }
        }
      ]
    }
  }

我该如何解决?

由于

此致

1 个答案:

答案 0 :(得分:0)

搜索查询由GET请求执行。内容始终被忽略。使用POST,查询的返回是好的