Как я могу использовать function_score
запрос с сортировкой. Прямо сейчас, если я удалю sort
, тогда мой запрос вернет правильные результаты, это будет boost
компаний с идентификатором компании 158.
Но если я добавлю сортировку, то она игнорирует усиление.
Имеет смысл, почему это происходит, просто не знаю, как это исправить.Я пытался заглянуть в script_score
, но не могу получить термин фильтра в сценарии
"script_score": {
"script": "_score * how to get 158?"
}
...,
"query": {
"function_score": {
"functions": [
{
"filter": {
"terms": {
"companyId": [
158
]
}
},
"weight": 2
}
],
"query": {
"bool": {
"filter": [
{
"terms": {
"companyGroupId": [
1595
]
}
}
]
}
}
}
},
"size": 20,
"sort": [
{
"lastName.keyword": {
"order": "asc"
}
}
]
}
ОБНОВЛЕНИЕ Возможно ли что-то подобное ниже?
"query": {
"function_score": {
"functions": [
{
"filter": {
"term": {
"companyId": 158
}
},
"script_score" : {
"script" : "doc['companyId'].value == 158 ? 4 : 0",
}
}
],
-- Combining it with an sort--
"sort": [
{
"lastName.keyword": {
"order": "asc"
}
}
]