Проблема с реализацией Microsoft полнотекстового поиска заключается в том, что он, по сути, допускает только один язык на полнотекстовый индекс , и этот язык необходимо указать в определении индекса, если он отличается от значения по умолчанию язык экземпляра SQL Server. Другое ограничение заключается в том, что у вас может быть только один полнотекстовый индекс на таблицу или индексированное представление.
Существует несколько обходных путей в зависимости от архитектуры и сложности вашей системы. Например, вы можете создать несколько таблиц, по одной на язык, в которой будет храниться проиндексированный контент. К сожалению, ваше приложение должно каким-то образом «понять», куда и куда идет запись, или ваши пользователи будут вынуждены устанавливать правильный язык каждый раз, когда вводят новые данные.
Кроме того, весь текст может быть сохранен. в той же таблице, но вместо этого вы должны создать несколько индексированных представлений, каждое из которых предоставляет только подмножество или записи на одном языке, а затем создавать полнотекстовые индексы для этих представлений. Опять же, проблема идентификации языка остается.
Конечно, ваше приложение может попытаться определить текущую раскладку клавиатуры, когда пользователь вводит текст (не уверен, возможно ли это в WPF, но я сделал это в WinForms ). Это, вероятно, не будет работать с копированием-вставкой и загруженными документами, если ваша система хранит их.
По моему опыту, наиболее жизнеспособное решение - это позволить вашим клиентам самим указывать язык FTS при установке вашего приложения. , Если ваша аудитория глобальная, вы не можете охватить каждый язык из коробки. К счастью, из того, что я видел, текст Engli sh ищется более или менее надежно, независимо от языка индекса.