Я использую FTS и возвращает для запроса «Møreforsking» результатов содержит «MORE» как отдельное слово. Я понимаю, что «Møre» и «forsking» - разные слова и могут использоваться отдельно. Как я могу избежать проблемы? Я хочу искать только цельное слово в описанном случае.поиск MS SQL SERVER FTS FREETEXTTABLE по части слова
ответ
Я не уверен, какую кодовую страницу вы работаете, поэтому я не могу ее легко проверить (SELECT 'language_id' AS "LCID" FROM sys.fulltext_index_columns;
); если word breaker разбивает слова вверх и рассматривает более подробно как два слова для сопоставления. Вы можете проверить с помощью автоматических выключателей слова
SELECT * FROM sys.dm_fts_parser (' "Møreforsking" ', {YOURCODEPAGE}, 0, 0)
если возвращаются два слова ещё и forsking, то вам нужно сказать FTS о вашем слове Moreforking. Вы можете создать свой собственный словарь и добавить слово, если оно отсутствует. Связанный microsoft technet немного запутанный, поскольку он говорит, следуя инструкциям Sharepoint, но сохраняя их в папке sql.
Основы являются
- Создайте файл для ваших заказных слов (прочитать статью, чтобы получить кодовые страницы справа)
- Файл представляет собой список слов; макс одно слово один в строке
Сохранить файл в вашем SQL Instance (иногда его так)
C: \ Program Files \ Microsoft SQL Server \\ MSSQL \ Binn
получить FTS для загрузки словари, перезапустив демона FTS.
Exec sp_fulltext_service 'restart_all_fdhosts'
Плохая новость в том, что вам нужно будет проиндексировать для его вступления в силу; поэтому я бы попробовал его в тесте и прочитал статью с разделяемой точкой, если у вас есть много данных, которые индексируются.
Большое спасибо, я создал собственный словарь, и это помогло! – BotanMan