Jquery SQL全文搜索和突出显示结果
我在SQL Server中有一个具有以下结构的表:Jquery SQL全文搜索和突出显示结果,jquery,asp.net,tsql,sql-server-2008,Jquery,Asp.net,Tsql,Sql Server 2008,我在SQL Server中有一个具有以下结构的表: Students ( StudentId bigint, FullName nvarchar(100), DegreeId smallint, Articel nvarchar(max) ) 我已经创建了一个全文索引,并为“学生”表启用了它 在我的asp.net页面中,用户键入单词,我使用这些单词调用存储过程过滤器 Create Procedure GetStudents(@Article nvarchar(
Students
(
StudentId bigint,
FullName nvarchar(100),
DegreeId smallint,
Articel nvarchar(max)
)
我已经创建了一个全文索引,并为“学生”表启用了它
在我的asp.net页面中,用户键入单词,我使用这些单词调用存储过程过滤器
Create Procedure GetStudents(@Article nvarchar(200)=typed words)
AS
BEGIN
SET NOCOUNT ON
SELECT StudentId,FullName,DegreeId,Article
FROM Students
WHERE WHERE FREETEXT(Article,'''+ @Article+''')
END
搜索工作正常,现在我需要在我的asp.net页面(通过jquery或asp.net)中突出显示(黄色背景)返回学生的“文章”
任何建议
感谢StackOverFlow请参见此处我认为您将很难获得一个完美的高亮显示系统,因为SQL Server将在
自由文本
查询中匹配单词变体。如果你想变得近乎完美,你可以自己做(或使用别人的)来生成单词变体
如果您想尽最大努力,可以将查询嵌入(隐藏在一个输入字段中或作为查询字符串上的散列),然后执行javascript搜索并替换,如下所示:
$(document).ready(function() {
// Set up words, either as a list you loop through or a JSON collection
$("#resultsContainer").innerHTML.replace(word, "<span class='highlight'>" + word + "</span>");
});
$(文档).ready(函数(){
//将单词设置为循环列表或JSON集合
$(“#resultcontainer”).innerHTML.replace(word,“+word+”);
});
您可能也可以在服务器端轻松完成此操作,而不必担心jQuery会拾取页面中可能与查询词匹配的元素。在这种情况下,您只需在服务器代码(VB或C#)上执行类似于javascript的搜索和替换操作。试试这可能会对您有所帮助
谢谢。实际上,我正在考虑用“%word%”之类的搜索,但我不知道怎么做我有一个单词列表如果你有一个单词列表,你将不得不
或大量之类的求值,这可能会导致非常慢的查询。就性能而言,通过全文搜索,您已经走上了正确的道路。下面是波特词干算法的C#实现:。您可以使用它根据简单的查询词生成要突出显示的词。