Как эффективно ранжировать объекты JSON переменной структуры (с MongoDB) - PullRequest
0 голосов
/ 28 января 2019

Привет сообщество stackoverflow,

У меня есть, вероятно, какая-то особая проблема частичного сопоставления (ранжирования), которую я не мог эффективно решить в базе данных до сих пор.Предположим, у меня есть следующие объекты JSON, хранящиеся в базе данных (в моем случае: MongoDB).

1

{"first_name": "hans", "last_name": "maier "," has_debt ":" true "}

2

{" name ":" hans peter "," has_debt ":" Maybe "," random_field": 1}

3

{" first_name ":" hans "," last_name ":" müller "," has_debt ":" true "," random_stuff":" true "}

Теперь предположим, что следующий объект недавно доставлен:

4

{" first_name ":" hans ","last_name ":" müller "," has_debt ":" true "," country ":" US and A "}

Мне нужен для объекта № 4 следующий рейтинг записей в базе данных:# 3, # 1, # 2, основанные на количестве точных совпадений ключ-значение (= "размер пересечения").

Например: # 3 и # 4 имеют ровно три совпадающие пары ключ-значение,

Примечания: Я явно не хочу нечеткого соответствия текстовых фрагментов или нормализации данных, например, (не) объединять поля имени / фамилии.Каждое поле имеет одинаковую важность.

Знаете ли вы подходящую методику ранжирования MongoDB или трансформацию задачи для решения этой задачи?Если нет, есть ли альтернативная технология для эффективного решения этой проблемы?

У меня есть наивная реализация R для решения этой проблемы, но я ищу (в лучшем случае) запрос, который решает это эффективно (имасштабируемый).

Заранее спасибо!С уважением, Патрик

...