Тут несколько проблем.
-
POST twit/1создает документ с типом1и сгенерированным id -
"tweet":{... }на верхнем уровне не нужен, либо вам его надо добавить в меппинг. - для поиска nested объектов надо использовать специальный запрос
nested - в 5.x
constant_score
Со всеми этими
PUT twit
{
"mappings": {
"tweet": {
"properties": {
"message": {
"type": "nested"
},
"date":{
"type":"text"
}
}
}
}
}
PUT twit/tweet/1
{
"message": {
"op":"ewr",
"ds":"ds"
},
"date":"ccv"
}
PUT twit/tweet/2
{
"message":{
"fdgd":"dgs",
"ds":"ds"
},
"date":"ccv"
}
GET twit/_search
{
"query": {
"constant_score": {
"filter": {
"nested": {
"path": "message",
"query": {
"exists": {
"field": "message.op"
}
}
}
},
"boost": 1.2
}
}
}
Если у вас только один message на tweet, то он должен быть не nested а object и тогда пример будет выглядить так
PUT twit
{
"mappings": {
"tweet": {
"properties": {
"message": {
"type": "object"
},
"date":{
"type":"text"
}
}
}
}
}
PUT twit/tweet/1
{
"message": {
"op":"ewr",
"ds":"ds"
},
"date":"ccv"
}
PUT twit/tweet/2
{
"message":{
"fdgd":"dgs",
"ds":"ds"
},
"date":"ccv"
}
GET twit/_search
{
"query": {
"constant_score": {
"filter": {
"exists": {
"field": "message.op"
}
},
"boost": 1.2
}
}
}