Hello stackoverflow社区,
我有一个可能是特殊的局部匹配(排序)问题,直到现在我还是无法在数据库中有效解决。假设我在数据库中存储了以下JSON对象(以我的情况为例:MongoDB)。
{ “ first_name”:“ hans”, “ last_name”:“ maier”, “ has_debt”:“ true” }
{ “ name”:“ hans peter”, “ has_debt”:“也许”, “ random_field”:1 }
{ “ first_name”:“ hans”, “ last_name”:“müller”, “ has_debt”:“ true”, “ random_stuff”:“ true” }
现在假定以下对象是新交付的:
{ “ first_name”:“ hans”, “ last_name”:“müller”, “ has_debt”:“ true”, “ country”:“美国和A” }
我需要为#4对象提供以下数据库中条目的排名:#3,#1,#2,具体取决于精确的键值匹配数(=“交集大小”)。
例如:#3和#4恰好具有三个匹配的键值对。
注意:我明确不想模糊匹配文本片段或标准化数据,例如,(取消)合并名字/姓氏字段。每个领域都具有相同的重要性。
您是否知道合适的MongoDB排名技术或解决此任务的问题的转换方法?如果没有,是否有替代技术可以有效解决此问题?
我有一个朴素的R实现来解决此问题,但我正在寻找一种(最好的情况)查询来有效(且可扩展)解决此问题。
提前谢谢! 最好的问候,帕特里克