Konfiguruj i zarządzaj wyrazami ignorowanymi oraz listami wyrazów ignorowanych dla wyszukiwania pełnotekstowego

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Aby zapobiec nadmiernemu obciążeniu indeksu pełnego tekstu, SQL Server Database Engine posiada mechanizm usuwający często występujące ciągi tekstów, które nie pomagają w wyszukiwaniu. Te odrzucone ciągi są nazywane stopwords. Podczas tworzenia indeksu aparat Full-Text pomija stopwords z indeksu pełnotekstowego. Oznacza to, że zapytania pełnotekstowe nie przeszukują słów stopowych.

Termin Description
Stopwordy Stopword może być słowem o znaczeniu w określonym języku. Na przykład w języku angielskim słowa takie jak a, and, is, i the są pomijane w indeksie pełnym tekstem, ponieważ wiadomo, że są bezużyteczne dla wyszukiwania. Słowo stopowe może być także symbolem bez znaczenia językowego.
Listy zatrzymań Stopwordy są zarządzane w bazach danych za pomocą obiektów zwanych stoplistami. Lista 'stoplista' to lista wyrażeń wykluczanych, która po powiązaniu z indeksem pełnotekstowym jest stosowana do zapytań pełnotekstowych w tym indeksie.

Korzystanie z istniejącej listy zatrzymań

Możesz korzystać z istniejącej stoplisty w następujący sposób:

  • Użyj stoplisty dostarczonej przez system w bazie danych. Aparat bazy danych zawiera systemową listę wykluczanych słów, która obejmuje najczęściej używane słowa wykluczane dla każdego obsługiwanego języka, to znaczy dla każdego języka domyślnie skojarzonego z określonymi modułami podziału wyrazów. Możesz skopiować listę zatrzymań systemowych i dostosować kopię, dodając i usuwając stopwords.

    Lista wykluczeń systemu jest zainstalowana w bazie danych zasobów.

  • Użyj istniejącej niestandardowej listy wykluczeń z innej bazy danych w bieżącej instancji serwera, a następnie odpowiednio dodaj lub usuń wyrazy wykluczane.

Tworzenie nowej listy zatrzymań

Możesz utworzyć listę wyrazów ignorowanych za pomocą języka Transact-SQL (T-SQL) lub programu SQL Server Management Studio (SSMS).

Tworzenie nowej listy zatrzymań przy użyciu Transact-SQL

Użyj CREATE FULLTEXT STOPLIST.

Stwórz nową listę stopów w SQL Server Management Studio

  1. W Eksploratorze obiektów rozwiń serwer.

  2. Rozwiń węzeł Databases, a następnie rozwiń bazę danych, w której chcesz utworzyć listę wykluczeń pełnotekstowych.

  3. Rozwiń Storage, a następnie kliknij prawym przyciskiem myszy Full-Text Stoplisty.

  4. Wybierz Nowe Full-Text Listy zatrzymań.

  5. Wprowadź nazwę nowej listy zatrzymań.

  6. Opcjonalnie określ inną osobę jako właściciela listy zatrzymań.

  7. Wybierz jedną z następujących opcji tworzenia listy zatrzymań:

    • Tworzenie pustej listy zatrzymań

    • Utwórz z listy zatrzymań systemu

    • Utwórz na podstawie istniejącej listy zatrzymań pełnotekstowych

    Aby uzyskać więcej informacji, zobacz New Full-Text Stoplist (strona ogólna).

  8. Wybierz pozycję OK.

Używanie listy stop w zapytaniach pełnotekstowych

Aby użyć listy zatrzymań w zapytaniach, musisz skojarzyć ją z indeksem pełnotekstowym. Listę zatrzymań można dołączyć do indeksu pełnotekstowego podczas tworzenia indeksu lub później zmienić indeks, aby dodać listę stop.

Zadanie Metoda
Utwórz indeks pełnotekstowy i skojarz go z listą wykluczanych wyrazów Użyj CREATE FULLTEXT INDEX.
Kojarzenie lub usuwanie skojarzenia listy zatrzymań z istniejącym indeksem pełnotekstowym Użyj ALTER FULLTEXT INDEX.

Zmienianie stopwords na liście zatrzymań

Możesz modyfikować słowa stopowe w liście stop, używając Transact-SQL (T-SQL) lub SQL Server Management Studio (SSMS).

Dodawanie lub upuszczanie stopwords z listy zatrzymań za pomocą Transact-SQL

Użyj ALTER FULLTEXT STOPLIST.

Dodaj lub usuń słowa stopowe z listy stop za pomocą SQL Server Management Studio

  1. W Eksploratorze obiektów rozwiń serwer.

  2. Rozwiń element Bazy danych, a następnie rozwiń bazę danych.

  3. Rozwiń węzeł Storage, a następnie wybierz pełnotekstowe listy wykluczeń.

  4. Kliknij prawym przyciskiem myszy listę zatrzymań, której właściwości chcesz zmienić, a następnie wybierz pozycję Właściwości.

  5. W oknie dialogowym Full-Text Właściwości listy zatrzymań:

    1. W polu listy Akcja wybierz jedną z następujących akcji: Dodaj słowo stop, Usuń słowo stop, Usuń wszystkie słowa stoplub wyczyść listę stop.

    2. Jeśli dla wybranej akcji pole tekstowe słowo kluczowe jest aktywne, wprowadź jedno słowo stop. To słowo stopowe musi być unikatowe. Nie może już być na tej liście zatrzymań dla wybranego przez ciebie języka.

    3. Jeśli pole listy języka pełnotekstowego jest włączone dla wybranej akcji, wybierz język.

  6. Wybierz pozycję OK.

Zarządzanie listami zatrzymania i ich użyciem

Skorzystaj z poniższych metod, aby wyświetlać listy wykluczeń i zarządzać nimi.

Zadanie Metoda
Wyświetlanie wszystkich stopwords na liście zatrzymań Użyj sys.fulltext_stopwords.
Uzyskaj informacje o wszystkich listach stopów w aktualnej bazie danych Używaj sys.fulltext_stoplists i sys.fulltext_stopwords.
Wyświetlanie wyniku tokenizacji kombinacji wyrazów breaker, thesaurus i stoplist Użyj sys.dm_fts_parser.
Pomiń komunikat o błędzie, jeśli słowa kluczowe powodują niepowodzenie operacji logicznej w pełnotekstowej kwerendzie Użyj opcji Konfiguracja serwera: przekształcanie słów ignorowanych.

Więcej informacji o pozycji stopword

Chociaż indeks pełen tekstu pomija uwzględnienie słów stopowych, uwzględnia ich położenie. Na przykład rozważmy frazę Instructions are applicable to these Adventure Works Cycles models. W poniższej tabeli przedstawiono położenie wyrazów w frazie:

Słowo Pozycja
Instructions 1
are 2
applicable 3
to 4
these 5
Adventure 6
Works 7
Cycles 8
models 9

Słowa stopowe are, to i these, które znajdują się na pozycjach 2, 4 i 5, są pomijane w indeksie pełnego tekstu. Jednak ich informacje pozycyjne są utrzymywane, pozostawiając w ten sposób pozycję innych słów w frazie bez zmiany.

Ulepszanie słów szumowych w SQL Server 2005

Słowa szumowe SQL Server 2005 (9.x) zostały zastąpione słowami stopowymi. Po uaktualnieniu bazy danych z programu SQL Server 2005 (9.x) pliki wyrazów szumu nie są już używane. Jednak pliki słów ignorowanych są przechowywane w folderze FTDATA\FTNoiseThesaurusBak, a później można ich użyć podczas aktualizowania lub tworzenia odpowiednich list wykluczanych słów. Aby uzyskać informacje na temat aktualizowania plików wyrazów szumu do list zatrzymania, zajrzyj do Upgrade Full-Text Search.