![]() |
1
2
我不知道“最好”的方法(如果我知道的话,我会在谷歌工作)。不过,考虑到这一点,我确实在几个月前的概念验证/客户演示中实现了类似的功能。请注意,我能够非常有效地约束问题域,尤其是立即可搜索数据集的大小,这样性能就不是问题了。
我创造了一个
我对
为了实现更适合生产的实现,我会做一些更好的事情:
|
![]() |
2
0
我将在每个类上实现一个简单的接口,该接口只返回描述实例的搜索词列表。然后,您就可以获取所有对象,向他们索要搜索词,并根据用户提供的搜索词对其进行排名。 这与您的包含接口思想很接近,但使更多的逻辑远离了业务类。您甚至可以通过反射来检查对象,并且可能只是向属性中添加一些用户属性,以向搜索引擎提供一些提示,说明要在搜索中包含哪些属性。 但是请注意,您必须对所有对象的每次搜索进行评估。如果您使用一个复杂的排名函数,这个过程将变得非常缓慢,超过大约100个对象。使用反射会使事情变得更糟。 另一个需要解决的问题是如何以有意义的方式处理搜索结果。如果您有很多不同的类,那么显示结果并将用户导航到应用程序中的某个位置(在该位置他可以对这些对象执行某些操作)可能是一项非常重要的任务。 |
![]() |
3
0
我认为在每个对象中使用“contains”方法的方法非常有用。 你可以给“ 重量 对象的成员,以便如果contains方法找到匹配项,则 分数 “作为回报。 另一个需要考虑的因素是是否匹配 是否完全匹配 …给那个分数加分或减分。 如果在多个对象类型中搜索…也许你可以分配 较高值 为主要对象(更多以业务为中心的对象)提供更多优先级。 只是想法… |
![]() |
JOO · 使用udpClient从多个IP地址连续接收数据 2 年前 |
![]() |
Futterkiste · 函数比例图 2 年前 |
![]() |
user18789895 · 我应该如何验证WinForms应用程序? 2 年前 |
![]() |
beriscen · 如何使整个链接标签区域可点击? 3 年前 |
![]() |
lpmaxim · 当鼠标光标悬停在按钮上时,背景图像会移动 3 年前 |