假设以下内容:作为输入,可以获得由N个数字和布尔值组成的记录。必须将该向量与向量数据库进行比较,其中包括M个额外的“结果”元素。这意味着,数据库保存P N + M大小的向量。
数据库中的每个向量都将最后一个元素保存为布尔值。练习的目的是尽可能快地找到与输入向量最接近的记录,并得到以TRUE布尔结尾的结果向量。
为了使上述内容更易于理解,请举出以下示例:
包含个人健康信息的数据库,包含以下记录:
住所
替代计划选择(如果已完成)
然后程序会搜索得到的输入 36男性185磅68英寸假纽约
然后根据数据库中的内容,找出最适合客户的计划。
我知道一些有助于这样做的方法,例如levenshtein距离法。但是,大多数方法都涉及在整个数据库中搜索最佳匹配。
是否有任何算法,方法可以减少所需的处理能力/时间?我无法想象,例如。保险机构不使用更有效的方法来搜索他们的数据库......
对此领域的任何见解将不胜感激!
答案 0 :(得分:0)
假设:这是一个关系数据库。如果它是NOSQL,那么请提供有关哪个db的更多信息。
您是否可以选择创建位图索引?他们可以减少返回的记录数量。这对几乎所有的columsn都很有用,因为基数很低。
之后剩下的唯一一个是住所,你应该使用Geo距离。
如果您无法创建位图索引,那么 您的过滤选项是什么?如果没有,那么你必须进行全表扫描。
对于每个组件,例如你需要的年龄,性别等 (a)确定距离度量 (b)确定如何计算度量和不同记录之间的距离。
我不确定Levenshtein会在这里工作 - 你需要分别拿出每个领域来找到他们对整个距离测量的贡献。