我正在尝试索引和查询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"
}
}
}
]
}
}
我该如何解决?
由于
此致
答案 0 :(得分:0)
搜索查询由GET请求执行。内容始终被忽略。使用POST,查询的返回是好的