Cześć,
mam następujący problem - omówię go na przykładzie poszukiwaniu hotelu.
Załóżmy że do wyszukania hotelu mam wyszukiwarkę (zawsze wszystkie pola muszą wypełnione):
- miasto: warszawa - jedna wartość
- cena: min:50, max:100 - zakres wartości, minimalna i maksymalna
- udogodnienia: [parking, wifi] - lista wartości
Do każdej cechy (miasto, cena, udogodnienia), mogę dodać wagę z zakresu 1-10 mówiącą o tym jak ważna jest dla mnie dana cecha.
Przykładowy request wyglądałby w json tak:
{
"query": {
"city": {
"value": "warszawa",
"weight": 10
}
"price": {
"min": 50,
"max": 100,
"weight": 10
}
... pozostałe parametry
}
}
Niestety właściciele hoteli to leniwi ludzi i nie zawsze mają wypełniony swój profil w 100% - niektórzy podają tylko cenę i miasto, inni miasto i listę udogodnień zapominając o cenie.
W odpowiedzi chciałbym dostać listę hoteli posortowaną według najlepszego dopasowania do moich potrzeb.
** Pytanie **
Przede wszystkim interesuje mnie to, czy ten rodzaj problemu / algorytmu ma jakąś konkretną nazwę po której mógłbym szukać informacji? Także nie oczekuję rozwiązania a podsunięcie pojęć / algorytmów / metodyki pomocnych w rozwiązaniu.
Chciałbym zachować jakiś kompromis pomiędzy wymaganiami i ich wagami a brakiem danych o poszczególnych obiektach - porównywanie dwóch obiektów z niepełnymi danymi (np. czy Hotel_A(warszawa, 75zł) jest lepszy od Hotel_B(warszawa, 50zł, [wifi]), uwzględniając parametry wyszukiwania i wagi)