2016-03-15 2 views
0

У меня есть набор документов, каждый из которых содержит поле содержимого и поле даты. Я пытаюсь манипулировать счетом таким образом, чтобы увеличить новые документы.Оценка линейной функции в Elasticsearch

Я нашел функцию оценки линейного распада, но у меня возникли проблемы с пониманием того, как это работает.

"function_score": { 
    "functions": [ 
    { 
     "linear": { 
     "date": { 
      "scale": "30d", 
      "offset": "7d", 
      "decay": 0.5 
     } 
     } 
    } 
    ] 
} 

Для указанной выше конфигурации, от того, что я понимаю, документы, которые являются более новыми, чем за 7 дней не будет иметь свои оценки манипулируют, документы, которые старше, чем получит снижение их счет на 0,5 с интервалом в 30 дней, это правильно?

Важное примечание: Я использую ES 1.7.4, новые версии ES имеют разные определения масштаба собственности

ответ

1

"масштаб": "30d" => определяет скорость распада

«смещение»: «7d» => расстояние больше, что определяется смещение результатов в распаде «распад»: 0,5 => скорость распада для документов, которые (смещение + - (N * шкала)) дней

для приведенная выше конфигурация, из того, что я понимаю, документы th на новее, чем за 7 дней не будет их оценки манипулируют

не только новые, но старше, а то есть в пределах расстояния offset от текущей даты

Линейный распад, вычисленный как:

Linear decay function

где снова параметр s вычисляется для обеспечения того, чтобы оценка брала значение затухания на шкале расстояния от начала координат + -выполнение

enter image description here

В отличие от нормального и экспоненциального распада, linear decay фактически устанавливает счет до 0, если значение поля в два раза превышает данный пользователь значение шкалы.

Reference

Смежные вопросы