У меня есть вложенный объект в моих сопоставлениях с несколькими значениями. у каждого документа есть набор ключевых слов, которые описывают документ с активным ключевым словом,
"properties": {
"user": {
"properties": {
"id": {
"type": "integer"
},
"status_id": {
"type": "integer"
},
"name": {
"type": "keyword"
},
"job_title" {
"type": "keyword"
},
"company_name" {
"type": "keyword"
}
}
},
"keywords": {
"properties": {
"deactive": {
"type": "nested",
"properties": {
"is_active": {
"type": "boolean"
},
"word": {
"type": "keyword"
}
}
},
"active": {
"type": "nested",
"properties": {
"is_active": {
"type": "boolean"
},
"word": {
"type": "keyword"
}
}
}
}
}
}
Я хочу создать запрос, который увеличит рейтинг документов с активными ключевыми словами ... и слово активных ключевых слов совпадает с текущим поисковым ключевым словом.
это мой текущий запрос, который не работает .. и, очевидно, не вносит изменений в счет ..
"query":{
"must":[
{
"bool":{
"must_not":[
{
"match":{
"user.status_id":152
}
}
]
}
},
{
"function_score":{
"functions":[
{
"filter":{
"term":{
"user.status_id":150
}
},
"weight":10
}
]
}
},
{
"query_string":{
"query":"sales",
"type":"phrase",
"fields":[
"user.job_title^12",
"user.company_name^5",
"user.name^6"
]
}
},
{
"function_score":{
"functions":[
{
"filter":{
"nested":{
"path":"keywords.active",
"query":{
"bool":{
"must":[
{
"term":{
"keywords.active.is_active":true
}
},
{
"match_phrase":{
"keywords.active.word":"sales"
}
}
]
}
}
}
},
"weight":9000
}
]
}
}
]
}
Есть ли какое-либо решение, позволяющее сделать документы, соответствующие запросу по количеству функций ... быть первыми результатами моего поиска?