Załóżmy, że mam listę osób w mojej datastore. Każda osoba tam może posiadają następujące pola:Jak prawidłowo zorganizować wyszukiwanie danej osoby?
- nazwisko (*)
- imię
- drugie imię
- id (*)
- jazdy id licencji (*)
- inny identyfikator (*)
- data urodzenia
- region
- miejsce urodzenia
Przynajmniej jeden pól oznaczonych gwiazdką (*) musi istnieć.
Teraz użytkownik podaje mi tę samą listę pól (i ponownie co najmniej należy podać jeden pól oznaczonych (*)). Powinienem wyszukać użytkownika użytkownika. Ale nie wszystkie pola powinny być dopasowane. Powinienem pokazać użytkownikowi, jak jestem pewien w wynikach wyszukiwania. Coś jak:
- jeśli osoba dopasowane
id
ilast name
(a użytkownikiem dostarczonych tylko te 2 pola do wyszukiwania), to jestem pewien, że wynik jest prawidłowy (100%); - jeśli dana osoba pasowała do
id
ilast name
(a użytkownik dostarczył inne pola, które zostały znalezione w bazie danych, ale nie zostały dopasowane), to jestem pewien, że wynik jest prawie poprawny o 60%; - itp
(numery są tylko jako przykład)
Jak mogę zorganizować taką wyszukiwanie? Czy istnieje jakiś standardowy algorytm? Chciałbym również ograniczyć liczbę żądań do bazy danych.
P.S. Nie mogę podać użytkownikowi faktycznych wartości pól z bazy danych.