rank
v0.4.1
Published
Factor based ranking system
Downloads
67
Readme
rAnk
Api
rAnk
var rAnk = require('rAnk');
Сначала нужно добавить факторы в систему
rAnk.factor('./some/path'); // подгружается указанный файл и из него извлекаются факторы
rAnk.factor(f1, f2, f3); // факторы через запятую
rAnk.factor([f1, f2, f3]); // массив факторов
rAnk.factor('fname') // возвращает уже добавленные фактор по имени
Затем объявить формулу и указать, какие факторы она будет использовать
rAnk.formula('forname', [facname1, facname2, facname3]);
Затем формулу можно использовать
var sorted = rAnk.run('forname', data, conditions);
Factor
Факторы принимают на вход массив с данными и объект с условиями. Бывает три типа фаторов:
- фильтрующий — возвращает урезанный массив с данными
- сортирующий — сортирует входные данные исходя из условий
- бинарыный — для каждого элемента из массива с данными возвращает либо 1 либо 0
Сортирующий и бинарный факторы должны возвращать ответ в следующем виде:
// всего в массиве 5 элементов
[3,4,2,1,0] // сортирующий
[0,0,4,4,0] // бинарный
для этого есть специальных хелпер:
Factor.distribution(original, sorted, id);
// original — оригинальный массив
// sorted — отсортированный или отфильтрованный массив
// id — имя уникального для каждого элемента массива ключа или функция для его вычисления
Создание фатора:
var Factor = require('rAnk').Factor;
Factor.create({
name: 'facname', // обязательный параметр
type: F_BINARY // || F_FILTER
exec: function(data, conditions) {} // вычисление фактора
});