gpt4 book ai didi

algorithm - 如何正确组织人员搜索?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:50:19 26 4
gpt4 key购买 nike

假设我的数据存储中有人员列表。那里的每个人可能有以下字段:

  • 姓氏 (*)
  • 名字
  • 中间名
  • 编号 (*)
  • 驾照编号 (*)
  • 另一个 id (*)
  • 出生日期
  • 地区
  • 出生地

标有 (*) 的字段中至少一个必须存在。

现在,用户向我提供了相同的字段列表(并且至少必须提供标有 (*) 的字段中的至少一个)。我应该搜索用户提供的人。但并非所有字段都应匹配。我应该以某种方式向用户显示我对搜索结果的确定程度。像这样的东西:

  • 如果人与 idlast name 匹配(并且用户只提供了这两个字段用于搜索),那么我确信结果是正确的 (100%) ;
  • 如果人与 idlast name 匹配(并且用户提供了其他字段,这些字段在数据库中找到,但没有匹配),那么我确定结果几乎正确 60%;
  • 等等

(数字仅作为示例提供)

如何组织此类搜索?有什么标准的算法吗?我还想尽量减少对数据库的请求数。

附言我无法向用户提供数据库中的实际字段值。

最佳答案

听起来您确定匹配质量的逻辑太复杂而无法在数据库层处理。我认为您将通过检索与至少一个强制键匹配的所有记录、计算内存中每个记录的匹配分数并返回最佳分数来获得最佳性能。例如,如果用户向您提供 ID、姓氏和出生地,您的查询将类似于:

SELECT * FROM users WHERE id = `the_id` OR last_name = `the_last_name`;

如果你有一个非常大的数据集,其中有很多共同的姓氏,这可能是一个性能问题,否则我希望不会看到太多的冲突。您可以在 GAE 之外的您自己的数据集上进行检查。如果通过将 OR 更改为 AND 来匹配所有必填字段,您还可以获得更好的性能。

关于algorithm - 如何正确组织人员搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11282742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com