Полный текстовый поиск SQL и выделение результата - PullRequest
1 голос
/ 30 марта 2011

У меня есть таблица в SQL Server со структурой:

 Students
(

  StudentId bigint,

  FullName nvarchar(100),

  DegreeId smallint, 

  Articel nvarchar(max)
)

Я создал полнотекстовый индекс и включил его для таблицы «студентов».

на моей странице asp.net, пользователи вводят слова, и я вызываю сохраненный фильтр proc, используя эти слова.

   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

Ответы [ 3 ]

0 голосов
/ 30 марта 2011

Я думаю, вам будет трудно получить идеальную систему подсветки, поскольку SQL Server будет сопоставлять варианты слов в запросе FREETEXT.Если вы хотите быть почти идеальным, вы можете создать свой собственный (или использовать чей-то) алгоритм для определения вариаций слов.

Если вы хотите приложить максимум усилий, вы можете встроитьзапрос (в скрытом поле ввода или в виде хэша в строке запроса), затем выполните поиск и замену 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>");
});

Вероятно, вы могли бы так же легко сделать это на стороне сервера ине нужно беспокоиться о том, чтобы jQuery подбирал элементы вашей страницы, которые могли бы соответствовать словам запроса.В этом случае вы просто выполните поиск и замену, аналогичную javascript, только в коде вашего сервера (VB или C #).

0 голосов
/ 30 марта 2011

Попробуйте, это может вам помочь

выделение слов

0 голосов
/ 30 марта 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...