2013-12-12 7 views
0

Я использую FTS и возвращает для запроса «Møreforsking» результатов содержит «MORE» как отдельное слово. Я понимаю, что «Møre» и «forsking» - разные слова и могут использоваться отдельно. Как я могу избежать проблемы? Я хочу искать только цельное слово в описанном случае.поиск MS SQL SERVER FTS FREETEXTTABLE по части слова

ответ

1

Я не уверен, какую кодовую страницу вы работаете, поэтому я не могу ее легко проверить (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.

Основы являются

  1. Создайте файл для ваших заказных слов (прочитать статью, чтобы получить кодовые страницы справа)
  2. Файл представляет собой список слов; макс одно слово один в строке
  3. Сохранить файл в вашем SQL Instance (иногда его так)

    C: \ Program Files \ Microsoft SQL Server \\ MSSQL \ Binn

  4. получить FTS для загрузки словари, перезапустив демона FTS.

    Exec sp_fulltext_service 'restart_all_fdhosts'

Плохая новость в том, что вам нужно будет проиндексировать для его вступления в силу; поэтому я бы попробовал его в тесте и прочитал статью с разделяемой точкой, если у вас есть много данных, которые индексируются.

+0

Большое спасибо, я создал собственный словарь, и это помогло! – BotanMan