Я работаю над проектом, касающимся рецептов приготовления. Я установил Elasticsearch 1.5.2, и я добавил много продуктов, таких как овощи или мясо во многих индексах супермаркетов. Все было хорошо, пока я не начал агрегирование запросов. Например: чтобы приготовить картофельный пюре, мне нужен картофель, фасоль, нут, брокколи, молоко, перец, соль. У меня есть все эти продукты. Мне нужно сделать один запрос, чтобы искать самые дешевые из этих продуктов во всех индексах. Я пробовал много запросов, но не нашел, что мне нужно.Запросы на сборку Elasticsearch
Это пример, все эти запросы работает, но мне нужно их результаты в одном запросе:
POST /_search
{
"query": {
"query_string": {
"query": "pommes de terre",
"fields": [
"titre"
]
}
},
"sort" : [
{"prix en €/kg" : {"order" : "asc"}}
]
}
POST /_search
{
"query": {
"query_string": {
"query": "haricots",
"fields": [
"titre"
]
}
},
"sort" : [
{"prix en €/kg" : {"order" : "asc"}}
]
}
POST /_search
{
"query": {
"query_string": {
"query": "pois chiche",
"fields": [
"titre"
]
}
},
"sort" : [
{"prix en €/kg" : {"order" : "asc"}}
]
}
POST /_search
{
"query": {
"query_string": {
"query": "brocoli",
"fields": [
"titre"
]
}
},
"sort" : [
{"prix en €/kg" : {"order" : "asc"}}
]
}
POST /_search
{
"query": {
"query_string": {
"query": "lait",
"fields": [
"tags"
]
}
},
"sort" : [
{"prix en €/L" : {"order" : "asc"}}
]
}
POST /_search
{
"query": {
"query_string": {
"query": "poivre",
"fields": [
"tags"
]
}
},
"sort" : [
{"prix en €/kg" : {"order" : "asc"}}
]
}
POST /_search
{
"query": {
"query_string": {
"query": "sel",
"fields": [
"tags"
]
}
},
"sort" : [
{"prix en €/kg" : {"order" : "asc"}}
]
}
Я хочу иметь только один запрос для выборки результатов всех этих запросов, и я хочу только самый дешевый но не все списки.
Спасибо. Но у меня есть эта ошибка: «SearchPhaseExecutionException [Не удалось выполнить фазу [запрос], все осколки не пройдены; shardFailures {[tZ-AvbvUQAaemOy2BSk_2Q] [testindex] [0]: SearchParseException [[testindex] [0]: from [- 1], size [-1]: Parse Failure [Failed to parse source .......] " –
Возможно, проблема транспонирования: убедитесь, что имена полей и индексов действительно то, что у вас есть на вашем сервере. – nikoshr
Должен ли я добавить, например, «sel» во все мои индексы, чтобы это сработало? { "Сель": { "фильтр": { "QUERY_STRING": { "запрос": "Сель", "полей": [ "титр" ] } }, " Aggs»: { "minprice": { "top_hits": { "сорт": [ { "Приза ан €/кг": { "порядок": "по возрастанию" } } ], «размер»: 1 } } } } } –