【发布时间】:2016-01-19 16:56:28
【问题描述】:
我试图弄清楚如何使用多个字段/术语来实现“基于强度的搜索”。例如:
正在搜索:
- 腿数:4
- 有毛皮:是的
- 有蹄子:是的
- 关键词:哞
结果:
- [高]牛
- [中]猫
- [中]狗
- [低]无毛鼹鼠
- [不匹配]鸟
值得一提的是,我的实际模型中的标准有些加权、相关和结构化。
我选择的语言是 C#.NET,我使用的是 LINQ + Fluent NHibernate。我一直在尝试几种不同的方法来实现这一点,但大多数都觉得笨拙。目前,我使用的数据库有超过 100,000 个“动物”,可以针对大约 15 个字段进行搜索。
问题:
这种搜索有名字吗?
在尝试实现此功能时,我应该注意哪些最佳实践或技术?
有哪些高性能方法可以实现这样的搜索?伪代码和一般逻辑与代码一样受到重视。
【问题讨论】:
-
您可以使用 SQL Server 的全文搜索来生成关键字的相关性分数,并将其与您的布尔值合并以生成复合相关性分数。这应该会使您的搜索速度相当快。
标签: c# linq search nhibernate