У меня есть несколько типов контента "услуги, профиль, новости, вакансии", которые индексируются в упругом поиске.Я пытаюсь получить документ на основе искомого термина.В качестве примера -
Если тип пользователя - "California" - система должна вернуть 3 наиболее подходящие записи из каждого типа контента.У меня есть следующие элементы для создания запросов - условие поиска, поля для соответствия [название, описание, местоположение, услуги, специализация], фильтр по типам контента [профиль, услуги, вакансии, блог].
Я попробовал сам,вот запрос
{
"aggs": {
"group": {
"terms": {
"field": "type.raw"
},
"aggs": {
"group_docs": {
"top_hits": {
"sort": [
{
"date.updated": {
"order": "asc",
"unmapped_type": "date"
}
}
],
"size": 3
}
}
}
}
},
"query": {
"bool": {
"must": {
"multi_match": {
"query": "work",
"fields": [
"title",
"description",
"services",
"location",
"area_of_specialization"
]
}
},
"filter": {
"bool": {
"should": [
{
"term": {
"type": "profile"
}
},
{
"term": {
"type": "blog"
}
},
{
"term": {
"type": "jobs"
}
},
{
"term": {
"type": "services"
}
}
]
}
}
}
}
}
Я использую упругий поиск версии 6.5.3.
Любая помощь будет оценена.