1

许多网站,尤其是零售网站,都允许您以与按价格相同的方式按“相关性”进行排序。我将假设这意味着基于您搜索的单词数量,其中有多少与数据库匹配。

例如,如果我的关系数据库有一个搜索词表,对于一个特定的产品,这 3 个词是 table、tennis、club 并且我在网站上搜索了乒乓球馆,我将有 66% 的准确率,因为 3 个匹配项中有 2 个.

我需要这个功能,但我正在使用 EF 并且不知道从哪里开始。所以,从字面上看,我追求的是 %(“准确度分数”或相关性)。

到目前为止,我很高兴展示我的代码,但老实说,我觉得在页面上扔了 70 行代码只是为了证明我已经尝试过的东西不会使任何人受益,所以如果你想要代码,我'会显示它,如果没有,任何人都可以给我任何指向谷歌的指针甚至短语吗?

4

1 回答 1

0

假设这是一个 SQL Server 项目,您可以从查看全文搜索/全文目录开始。将这些与CONTAINSTABLEorFREETEXTTABLE搜索一起使用将返回一个分数,该分数是相对相关性的度量,而不是百分比。从 EF 的角度来看,我最终找到了最简单的解决方案,即调用存储过程以在 EF 之外获取我的排名结果(分数和 ID),然后按 ID 从上下文中加载对象。我编写了一个半复杂的存储过程,允许我根据包含字段的相关性对结果进行加权。我在这里向我的问题发布了其中的一些内容:Code-First Entity Framework w/ Stored Procedure returned results from complex Full-text Searches

于 2013-02-15T19:52:24.727 回答