Я разрабатываю веб-приложение с использованием ASP.NET и SQL Server 2008. У меня около 1 000 000 статей в моей базе данных, и я активировал полнотекстовый поиск.Проверка орфографии и сценарий предложения слов в SQL Server
Теперь я хочу, чтобы найти в статьях, и мне нужно 3 функциональные возможности для поиска текстового поля:
- автозаполнения: когда пользователь вводит слово (Wor) Я хочу, чтобы показать ему (World, Word , ...).
- Сроки предложения: Когда пользователь вводит слово (мир), я хочу показать ему следующие термины (Первая мировая война, Вторая мировая война, ...).
- Проверка орфографии: когда пользователь вводит неправильное слово, я хочу его исправить.
Первый сценарий может быть легко реализован, как показано ниже:
SELECT TOP 10 *
FROM sys.dm_fts_index_keywords(db_id('MyDB'), object_id('Articles'))
WHERE display_term LIKE 'Wor%'
ORDER BY document_count DESC
Я не знаю, как реализовать второй сценарий. IMO Мне нужно создать таблицу (FirstWord, SecendWord, Frequency), чтобы хранить последовательности терминалов и их частоты (извлекать их из содержимого статьи) и искать по порядку первого порядка по частоте.
Для третьего сценария: я прочитал о алгоритмах проверки орфографии (ASpell, NSpell, ...), я хочу знать, что для них есть реализация SQL Server + .NET?
Есть ли решение для удовлетворения моих потребностей? Я предпочитаю реализовать их все как SP в SQL Server.
Update: Вот содержание записи, которую я должен искать:
Гитлер и Муссолини оказали большую военную и финансовую поддержку националистического восстания во главе с генералом Франсиско Франко в Испании. Советский Союз поддержал существующее правительство, Испанская Республика, которое показало левые тенденции. Более того, более 30 000 иностранных добровольцев, известных как международные бригады, сражались против Франко. И Германия, и СССР использовали эту прокси-войну как возможность испытать улучшенное оружие и тактику. Преднамеренное бомбардирование Герники немецким кондорским легионом в апреле 1937 года вызвало всеобщую обеспокоенность в связи с тем, что следующая крупная война будет включать в себя обширные террористические атаки на гражданских лиц. [30] [31] Хотя были некоторые незначительные очаги сопротивления, националистический фронт объявил победу 1 апреля 1939 года. [32] Следует отметить, что пять месяцев спустя Германия напала на Польшу, начав Вторую мировую войну.
ссылка 'sql wildcards' здесь> http://www.w3schools.com/sql/sql_wildcards.asp – zey