Delen via


Geregistreerde filters en woordonderbrekers (SQL Server Search) weergeven of wijzigen

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Nadat u woordonderbrekers of filters op een systeem hebt geïnstalleerd of verwijderd, worden de wijzigingen niet automatisch van kracht op serverexemplaren. In dit artikel wordt beschreven hoe u de momenteel geregistreerde woordonderbrekers of filters kunt weergeven en hoe u nieuw geïnstalleerde woordonderbrekers en filters registreert op een exemplaar van SQL Server.

Notitie

Azure SQL Managed Instance biedt ondersteuning voor het weergeven van geregistreerde filters en woordonderbrekers, maar het wijzigen ervan wordt niet ondersteund. U kunt alleen vooraf geïnstalleerde exemplaren gebruiken. Filters van derden en woordonderbrekers worden niet ondersteund in Azure SQL Managed Instance.

Een lijst met talen weergeven waarvan de woordonderbrekers momenteel zijn geregistreerd

Gebruik de sys.fulltext_languages catalogusweergave als volgt:

SELECT *
FROM sys.fulltext_languages;

Een lijst weergeven met de filters die momenteel zijn geregistreerd

Gebruik de systeemeigen opgeslagen procedure sp_help_fulltext_system_components als volgt:

EXECUTE sp_help_fulltext_system_components 'filter';

Nieuw geïnstalleerde woordonderbrekers en filters registreren

Gebruik de sp_fulltext_service door het systeem opgeslagen procedure om de lijst met talen als volgt bij te werken:

EXECUTE sp_fulltext_service 'update_languages';

Registratie van niet-geregistreerde woordonderbrekers en filters ongedaan maken

  1. Gebruik de sp_fulltext_service om de lijst met talen als volgt bij te werken:

    EXECUTE sp_fulltext_service 'update_languages';
    
  2. Gebruik de sp_fulltext_service om de hostprocessen van de filterdemon (fdhost.exe) als volgt opnieuw op te starten:

    EXECUTE sp_fulltext_service 'restart_all_fdhosts';
    

Woordonderbrekers en filters toevoegen of vervangen

Van toepassing op: SQL Server 2025 (17.x) en latere versies.

  1. De standaardversie van de volledige-tekstindex in SQL Server 2025 (17.x) en latere versies is versie 2. De standaard-DLL-bestanden voor versie 2 bevinden zich in de C:\Program Files\Microsoft SQL Server\MSSQL17.<instance-name>\MSSQL\Binn\Ftcomponents\[Filters|wordbreakers] map.

  2. Als u de standaardinstelling wilt overschrijven of een nieuw onderdeel wilt toevoegen, maakt u een version_overrides.json bestand in de C:\Program Files\Microsoft SQL Server\MSSQL17.<instance-name>\MSSQL\FTData map.

  3. Als u de woordonderbreker wilt toevoegen of vervangen, werkt u de languages sectie in het JSON-bestand bij. Werk de doctypes sectie bij voor filters.

    Voorbeeld van JSON-structuur:

    {
       "languages": {
             "en": [{
                "version": 2,
                "handler": "MSWB7.dll",
                "wbClsid": "9faed859-0b30-4434-ae65-412e14a16fb8"
                "stemmerClsid": "e1e5ef84-c4a6-4e50-8188-99aef3de2659"
             }],
             "<BCP 47 locale name>": [{ ... }],
          }
    
       "doctypes": {
             ".html": [{
                "version": 2,
                "handler": "nlhtml.dll",
                "clsid": "e0ca5340-4534-11cf-b952-00aa0051fe20"
             }],
             ".<extension 2>": [{ ... }],
          }
    }
    

    Houd rekening met de volgende regels voor het version_overrides.json bestand:

    • Alle velden in het JSON-bestand zijn verplicht, behalve stemmerClsid (optioneel).

    • De landinstellingsnaam kan elke naam van de BCP 47-landinstelling zijn, volgens de standaardnaam van de landinstelling.

    • Wanneer er dubbele vermeldingen bestaan voor dezelfde taal en versie, of extensie en versie, heeft de meest recente vermelding voorrang.

    • Handler-DLL kan een relatief pad naar het bestand zijn ten opzichte van de C:\Program Files\Microsoft SQL Server\MSSQL17.<instance-name>\MSSQL\Binn\Ftcomponents\[Filters|wordbreakers] map waarin de standaard binaire bestanden zich bevinden. Het kan ook een absoluut pad zijn. Als u bijvoorbeeld een filter wilt overschrijven met een binair systeem, kan de handler als volgt worden opgegeven:

      "handler": "%SystemRoot%\\system32\\windows.data.pdf.dll"
      

      Belangrijk

      U moet alleen ondertekende en geverifieerde onderdelen laden. Configureer de juiste toegangsbeheerlijsten (ACL's) voor DLL-bestanden en mappen die deze bevatten. U moet ook de MSSQLFDLauncher-service (FDHOST Launcher) uitvoeren met de minst mogelijke bevoegdheden.

  4. Gebruik sp_fulltext_service om de lijst met talen als volgt bij te werken:

    EXECUTE sp_fulltext_service 'update_languages';
    
  5. Start de filterdemonhostprocessen (fdhost.exe) opnieuw met behulp van sp_fulltext_service als volgt:

    EXECUTE sp_fulltext_service 'restart_all_fdhosts';
    

Bestaande woordonderbrekers of filters vervangen bij het installeren van nieuwe woorden

Van toepassing op: SQL Server 2022 (16.x) en eerdere versies.

  1. Voordat u een DLL-bestand installeert dat nieuwe woordonderbrekers of filters bevat, moet u ervoor zorgen dat het een andere bestandsnaam heeft dan een van de bestaande DLL-bestanden die op uw serverexemplaren zijn geïnstalleerd.

  2. Kopieer het nieuwe DLL-bestand naar de map met de standaard SQL Server DLL-bestanden voor het serverexemplaar. De standaardlocatie is:

    C:\Program Files\Microsoft SQL Server\MSSQL.<instance_name>\MSSQL\Binn
    
  3. Installeer de nieuwe woordonderbreker of -filters.

    Microsoft Filter Pack IFilters installeren en laden

  4. Gebruik sp_fulltext_service als volgt om nieuw geïnstalleerde woordonderbrekers en filters in het serverexemplaren te laden:

    EXECUTE sp_fulltext_service
        @action = 'load_os_resources',
        @value = 1;
    
  5. Gebruik sp_fulltext_service om de lijst met talen als volgt bij te werken:

    EXECUTE sp_fulltext_service 'update_languages';
    
  6. Start de filterdemonhostprocessen (fdhost.exe) opnieuw met behulp van sp_fulltext_service als volgt:

    EXECUTE sp_fulltext_service 'restart_all_fdhosts';