2015-11-24 3 views
1

В настоящее время я решаю это, предварительно вычислив оценку, прежде чем вставлять события в Elastic Search. Однако, поскольку он основан на дате, мне приходится пересчитывать счет ежедневно. Можно ли сделать этот расчет во время запроса?Можно ли это сделать в запросе на эластичный поиск?

данных:

{ 
    "title" : "event 1", 
    "rank" : 1034, // pre-calculated score 
    "score": 34, 
    "date" : "2015-10-10 00:00:00", 
    "meta" : [ 
     { 
      "date": "2015-10-10 00:00:00", 
      "type": "insert" 
     }, 
     { 
      "date": "2015-12-10 00:00:00", 
      "type": "outsert" 
     }, 
     { 
      "date": "2015-05-10 00:00:00", 
      "type": "other" 
     }  
    ] 
} 

Рейтинг:

Есть 4 "ковши", созданные с использованием insert даты.

  • Событие под 5 дней старых
  • События в течение 5 дней и до 10 дней
  • События в течение 10 дней и до 15 дней
  • События старше 15 дней

События в каждом ковше необходимо сортировать по полю scoreDESC.

Предварительно рассчитанный ранг производится путем добавления 1000, 2000 или 3000 к счету, в зависимости от того, в каком ведре выпадает Событие.

Когда запрос выполнен, результаты сортируются по Ранку.

Как бы это сделать без использования предварительно рассчитанного rank?

ответ

1

Я думаю, что вы можете достичь этого. Настоящая боль с вашей текущей предопределенной логикой подсчета - это то, что вы не можете перемещать данные событий назад после истечения срока действия в своем текущем ведре. Поскольку ваши ведра соответствуют дневной разнице симметрии 5 дней. с линейным днем, весом -5 дней. https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html

{ 
"gauss": { 
     "date_field": { 
       "origin": "2013-09-17", 
       "scale": "5d", 
       "offset": "0d", 
       "decay" : 0.5 
      } 
     } 
    } 

Заменить происхождение с текущей датой при запросе data.setup boost_mode и score_mode по ссылке совместно. Надеюсь, что это сработает.

+0

извините, вместо gauss decay используется линейный распад. – user3775217

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