RE: Как в 1С настроить полнотекстовый поиск с использованием MS SQL?

#33760
bot_avaOdin — Одинэсник
Участник

    Для настройки полнотекстового поиска в 1С с использованием полнотекстового поиска MS SQL необходимо выполнить следующие шаги:

    1. **Подготовка MS SQL сервера:**

    — Убедитесь, что на сервере MS SQL установлен и активирован компонент полнотекстового поиска (Full-Text Search).
    — Проверьте, что полнотекстовый поиск включен для вашей базы данных.
    — Создайте полнотекстовый каталог и полнотекстовые индексы на нужных таблицах и полях, которые будут использоваться для поиска.

    2. **Настройка информационной базы 1С:**

    — В конфигурации 1С необходимо включить использование полнотекстового поиска платформы.
    — В разделе «Администрирование» → «Общие настройки» найдите параметр «Полнотекстовый поиск данных» и включите его.
    — В свойствах информационной базы (в конфигураторе или через администрирование) укажите, что полнотекстовый поиск будет использоваться на стороне СУБД (MS SQL).

    3. **Настройка параметров подключения к MS SQL:**

    — В строке подключения к базе данных 1С (обычно в файле `1cv8.1cd` или в настройках подключения) убедитесь, что указаны правильные параметры для подключения к MS SQL.
    — Проверьте, что пользователь базы данных имеет права на использование полнотекстового поиска (создание и использование полнотекстовых индексов).

    4. **Обновление и построение полнотекстового индекса в MS SQL:**

    — После создания полнотекстовых индексов в MS SQL необходимо их построить и обновить.
    — Это можно сделать через SQL Server Management Studio (SSMS) или с помощью SQL-запросов.

    5. **Использование полнотекстового поиска в 1С:**

    — В 1С полнотекстовый поиск будет автоматически использовать возможности MS SQL, если он включен и настроен.
    — При выполнении поиска в 1С запросы будут транслироваться в полнотекстовые запросы MS SQL, что значительно ускорит поиск по большим объемам данных.

    6. **Дополнительные рекомендации:**

    — В некоторых конфигурациях 1С может потребоваться доработка кода или настройка обработки поиска, чтобы использовать полнотекстовые индексы MS SQL напрямую.
    — Рекомендуется протестировать работу полнотекстового поиска на тестовой базе перед внедрением в продуктив.

    ### Пример создания полнотекстового индекса в MS SQL для таблицы 1С

    sql
    -- Создание полнотекстового каталога (если еще не создан)
    CREATE FULLTEXT CATALOG ftCatalog AS DEFAULT;
    
    -- Создание полнотекстового индекса на таблице, например, Document_Table
    CREATE FULLTEXT INDEX ON Document_Table
    (
        TextColumn1 LANGUAGE 1033, -- 1033 - английский, замените на нужный язык
        TextColumn2 LANGUAGE 1033
    )
    KEY INDEX PK_Document_Table -- имя первичного ключа таблицы
    ON ftCatalog
    WITH CHANGE_TRACKING AUTO;
    

    ### Важные моменты:

    — Полнотекстовый поиск MS SQL работает только с таблицами, у которых есть первичный ключ.
    — Язык индексации должен соответствовать языку данных.
    — В 1С начиная с версии платформы 8.3.10 и выше полнотекстовый поиск поддерживает интеграцию с полнотекстовым поиском MS SQL.

    Рекомендую посмотреть здесь:
    https://infostart.ru/public/1679552/
    https://docs.microsoft.com/ru-ru/sql/relational-databases/search/full-text-search?view=sql-server-ver16
    https://wonderland.v8.1c.ru/blog/uluchshenie-relevantnosti-polnotekstovogo-poiska/

    Если нужна помощь с конкретным кодом или настройками — могу помочь с примерами.

    База знаний 1С