о полнотекстовом запросе в SQL - PullRequest
3 голосов
/ 18 октября 2010

У меня есть столбец nvarchar, который содержит текст на английском и японском языках. Я хочу сделать полнотекстовый поиск по этому столбцу. При настройке полнотекстового поиска нам необходимо указать языковой параметр для средства разбиения по словам (например, с помощью средства разбиения по английскому языку или средства разбиения по японскому языку). Мне интересно в этом случае, какой язык мне назначить? Я не уверен, работает ли прерыватель работы на японском языке и на английском.

Я использую SQL Server 2008 Enterprise.

спасибо заранее, George

1 Ответ

1 голос
/ 18 октября 2010

Вы должны выбрать нейтральное средство разбиения по словам, если у вас есть столбец, в котором есть разные языки (особенно западные и незападные языки).

Есть и другие опции, такие как

  • Разделение столбцов по каждому языку (как указано @Tony)
  • если ваши данные представляют собой простой текст; преобразование его в тип данных xml и добавление языковых тегов, которые указывают язык, который используется полнотекстовым движком.
  • разработка собственного средства разбиения по словам (хотя это не оптимальное решение)

Вот статья о передовых методах выбора языка при создании полнотекстового индекса.

Добавлено после комментариев

Это может быть запрошено несколько столбцов различными способами в зависимости от вашего варианта использования. Самый простой способ - использовать предикат CONTAINS для запроса нескольких столбцов, указав список столбцов для поиска, как показано ниже;

SELECT Name, Color FROM Production.Product
WHERE CONTAINS((Name, Color), 'Red');

Другим решением может быть использование столбца индикатора языка, который можно использовать в операторах CASE / IF, что помогает вам условно разделить запрос по языку. Вы также можете использовать функцию TSQL DATALENGTH (), чтобы проверить, является ли она пустой, и решить, какой столбец выбрать.

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