- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
假设我的数据存储中有人员列表。那里的每个人可能有以下字段:
标有 (*) 的字段中至少一个必须存在。
现在,用户向我提供了相同的字段列表(并且至少必须提供标有 (*) 的字段中的至少一个)。我应该搜索用户提供的人。但并非所有字段都应匹配。我应该以某种方式向用户显示我对搜索结果的确定程度。像这样的东西:
id
和 last name
匹配(并且用户只提供了这两个字段用于搜索),那么我确信结果是正确的 (100%) ;id
和 last 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/
是否有用于手动测试的代码覆盖工具?比如我新写了30行代码,编译,然后运行,有什么办法可以快速验证这30行都运行了吗? 另外,后来,在我将代码 checkin 正式版本后,有什么方法可以验证测试部门在进
老实说,这是一个家庭作业问题,但我已经浪费了好几个小时,而且无法正确解决。它返回错误数量的结果或错误的数据: 我需要选择参与指导电影和/或在电影中表演的每个人以及他们所做的次数,如果至少 5 次。 有
我正在尝试测试 MacOS 的应用内购买。输入测试用户凭据后,App Store 提示:“当前收据无效或 ds 人员 ID 不匹配。”并且购买失败。 最佳答案 我尝试了很多方法来解决这个问题。 Get
我正在为 Jenkins 使用 ActiveDirectory 插件,因此用户必须使用他们的凭据登录到 Jenkins。然后用户在 Jenkins 中被称为 joe.doe,这很完美。 当同一个人 c
如何从 Infopath 人员/组选取器检索电子邮件地址?当我将人员/组选取器添加到 infopath 表单时,我只得到 3 个字段 DisplayName、AccountId、AccountType
在 Snow Leopard 中,可以在 iCal 事件中显示空闲/忙碌时间。我搜索了 CalStore.framework 的 header ,但找不到任何描述该字段的属性。如何检索日历事件的忙/闲
是否有人成功地从专门针对 SharePoint 2013 的新建或编辑表单中获取用户(个人或组)字段的值? 我已经尝试了通过搜索互联网找到的所有解决方案以及我自己能想到的所有解决方案,所有结果都为空白
所以我需要将一个 Twitter 帐户添加到 ABRecordRef 中。然而,最快的方法似乎是获取社交资料属性的多值引用,创建它的可变版本,查找它是否有 Twitter 条目,如果已经有,则创建
我正在尝试将使用 Tomcat(最初是 5.5,但可以与 7 一起使用)在 MyEclipse 中开发的应用程序部署到我们的演示服务器 (Sun Java Web Server 7)。不幸的是,所有设
我是一名优秀的程序员,十分优秀!