抱歉英文不好:(
假设我可以以任何方式初步组织食谱和配料数据.
我怎样才能有效地进行搜索由用户提供的成分配方,最好是最大匹配排序-所以,首先要使用的最大提供ingridients的,不包含任何其他ingrs食谱,他们的食谱后,使用更少提供的一组和仍没有任何其他的人,他们的食谱与最低额外要求等等?
我所能想到的就是代表像bitmasks这样的食谱,并将所需的位掩码与所有食谱进行比较,但这显然是一个不好的方法.
和Levenstein距离这样的相关事情我不知道如何在这里使用.
我相信这应该是相当普遍的任务......
听起来您正在谈论集合 - “可用成分”是一组,并且您想要找到其成分构成其子集的所有食谱,按大小排序。集合可以有效地实现为平衡树或哈希表。
当你想要处理不同数量的成分时,事情会变得有点复杂。
编辑:如果你的食谱数据存储在 SQL 数据库中,那么实际上应该可以作为 SQL 查询(将在内部使用 hastables 和树)有效地完成整个事情。但这将是一个相当复杂的查询;最好问比我更擅长 SQL 的人(当然你的实际表结构是必要的)。