Я создал каталог FTS, который индексирует столбец Заголовок таблицы под названием Статьи.Язык средства разбиения по словам установлен на нидерландский язык.
Название статьи - "Contactgegevens Wijkteams 2019".Мой поисковый запрос - это contactgegevens, что в переводе с голландского означает «Контактные данные».Это слово потенциально может быть разделено на «контакт» и «gegevens», хотя я проверил проиндексированные ключевые слова, которые успешно проиндексировали полное слово из правильной таблицы / столбца.
Условие поиска:
declare @searchTerm nvarchar(100)
select @searchTerm = 'contactgegevens';
Использование свободного текста:
Если я использую FREETEXT
в предложении where, я нахожу результат, но он подходит к концуоколо 300 рядов.У большинства строк нет этого слова в столбце заголовка, даже слова, близкие по значению.
SELECT a.ArticleID, a.Title
FROM Articles a
WHERE
FREETEXT(a.Title, @searchTerm))
Использование FreeTextTable:
С FREETEXTTABLE
я получаю гораздо меньше результатов, но ни одно из них не содержит ключевого слова: 'contactgegevens' или его вариантов.
select *
from
freetexttable(Articles, Title, @search, LANGUAGE N'Dutch', 100) as key_table
inner join
Articles a on a.ArticleID = key_table.[Key]
order by
key_table.RANK desc
Использование ContainsTable:
CONTAINSTABLE
, похоже, возвращает очень похожие результаты к FREETEXTTABLE
.
SELECT key_table.rank, a.*
FROM Articles a
INNER JOIN
CONTAINSTABLE(Articles, Title, @searchTerm, LANGUAGE N'Dutch', 100) AS key_table on key_table.[KEY] = a.ArticleID
WHERE
ORDER BY
key_table.rank DESC
Как уже упоминалось, я проверил проиндексированные ключевые слова, используя следующий запрос:
select *
from sys.dm_fts_index_keywords(DB_ID('MyDatabase'), OBJECT_ID('Articles'))
where (display_term like 'contactgegevens%') and column_id = 3
order by display_term
, и ключевое слово индексируется для правильной таблицы / столбца и просматривая записи, близкие к этому.В результате я вижу, что он проиндексирован другими словами, относящимися к названию статьи, которую я ищу.
Я ожидаю, что смогу выполнить поиск по фразе, такой как "Contactgegevens Wijkteams 2019", и статья с таким точным названием появится в верхней части списка, но это не так.В некоторых случаях он вообще не появляется в результатах поиска.
Что мне здесь не хватает?