【发布时间】:2011-06-07 10:05:53
【问题描述】:
我正在使用 NHibernate 对项目名称进行搜索。我从数据库中获取了一个分页的项目列表,并按项目名称升序对其进行排序。
所以,如果我搜索“term”,我会在结果中的任何位置返回一个包含“term”的结果页面,并且该页面按字母顺序排列。
例如,结果可能如下所示
a term
d term
g term
j term
p term
s term
term 1
term 2
v term
z term
从技术上讲,这个列表是正确的,因为它是按字母顺序排列的。
但是,技术上正确对客户来说还不够好。他们希望列表首先按被搜索词的相关性排序,然后按字母顺序。
所以结果会变成
term 1
term 2
a term
d term
g term
j term
p term
s term
v term
z term
我不知道如何构造这个查询,或者它是否可能。如果这可以在应用程序中完成,那会容易得多,但由于分页,这必须在数据库上完成。这就是使事情复杂化的原因。有人可以在这里指出我正确的方向吗?
【问题讨论】:
-
通过相关性,我的意思是他们希望被搜索的词在排序中优先。第二个列表中概述了进一步解释这一点的示例。
-
为什么每个人都在引号中使用“相关性”一词?我写了“相关性”。我在这里错过了什么吗?
-
安东开始了! :) 但是在这种情况下,相关性的概念可能是一个专有名词。
-
啊安东,总是开玩笑:-) 但是,是的,这是一个真实的词。我只是好奇我是否不小心弄到了我看不到的东西
标签: c# nhibernate