Udostępnij za pośrednictwem


Konfigurowanie i zarządzanie listami stopwords i stop dla wyszukiwania Full-Text

Dotyczy:programu SQL ServerAzure SQL Database

Aby zapobiec nadęciu indeksu pełnotekstowego, program SQL Server ma mechanizm, który odrzuca często występujące ciągi, które nie ułatwiają wyszukiwania. 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 będą wyszukiwać w stopwords.

Stopwords. Stopword może być słowem o znaczeniu w określonym języku. Na przykład w języku angielskim wyrazy takie jak "a", "and", "is" i "the" są pominięte z indeksu pełnotekstowego, ponieważ są one znane jako bezużyteczne dla wyszukiwania. Stopword może być również token, który nie ma znaczenia językowego.

listy zatrzymań. Stopwords są zarządzane w bazach danych przy użyciu obiektów nazywanych listami stop. 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. SQL Server jest dostarczany z systemową listą wykluczeń, która zawiera najczęściej używane słowa przestankowe dla każdego obsługiwanego języka, dla każdego języka skojarzonego domyślnie z odpowiednimi analizatorami wyrazów. Możesz skopiować listę zatrzymań systemowych i dostosować kopię, dodając i usuwając stopwords.

    Lista zatrzymań systemu jest zainstalowana w bazie danych Resource.

  • Użyj istniejącej niestandardowej stoplisty z innej bazy danych w obecnym wystąpieniu serwera, a następnie dodaj lub usuń odpowiednio słowa stop.

Tworzenie nowej listy zatrzymań

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

Użyj CREATE FULLTEXT STOPLIST.

Tworzenie nowej listy zatrzymań za pomocą programu 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.

Tworzenie indeksu pełnotekstowego i kojarzenie z nim listy zatrzymań

Użyj UTWÓRZ PEŁNOTEKSTOWY INDEKS (Transact-SQL).

Kojarzenie lub usuwanie skojarzenia listy zatrzymań z istniejącym indeksem pełnotekstowym

Użyj ALTER FULLTEXT INDEX (Transact-SQL).

Zmienianie stopwords na liście zatrzymań

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

Użyj ALTER FULLTEXT STOPLIST (Transact-SQL).

Dodawanie lub usuwanie stopwords z listy zatrzymań za pomocą programu 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. Ten stopword musi być unikatowy; oznacza to, że nie znajduje się jeszcze na liście zatrzymań dla wybranego 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

Wyświetlanie wszystkich stopwords na liście zatrzymań

Użyj sys.fulltext_stopwords (Transact-SQL).

Uzyskiwanie informacji o wszystkich listach zatrzymania w bieżącej bazie danych

Użyj sys.fulltext_stoplists (Transact-SQL) i sys.fulltext_stopwords (Transact-SQL).

Wyświetlanie wyniku tokenizacji kombinacji wyrazów breaker, thesaurus i stoplist

Użyj sys.dm_fts_parser (Transact-SQL).

Pomiń komunikat o błędzie, jeśli słowa kluczowe powodują niepowodzenie operacji logicznej w pełnotekstowej kwerendzie

Użyj opcji konfiguracji serwera do transformacji słów szumowych.

Więcej informacji na temat pozycji stopwordów

Chociaż ignoruje włączenie słów stopowych, indeks pełnotekstowy uwzględnia ich pozycję. Rozważmy na przykład frazę "Instrukcje mają zastosowanie do tych modeli Adventure Works Cycles". W poniższej tabeli przedstawiono położenie wyrazów w frazie:

Słowo Pozycja
Instrukcje 1
2
zastosowalny 3
do 4
te 5
Przygoda 6
Działa 7
Cykli 8
Modele 9

Słowa kluczowe "są", "to" i "te", które znajdują się na pozycjach 2, 4 i 5, są pomijane w indeksie pełnotekstowym. 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

Wyrazy szumu programu SQL Server 2005 (9.x) zostały zastąpione przez stopwords. Po uaktualnieniu bazy danych z programu SQL Server 2005 (9.x) pliki wyrazów szumu nie są już używane. Pliki wyrazów szumu są jednak przechowywane w folderze FTDATA\ FTNoiseThesaurusBak i można ich używać później podczas aktualizowania lub tworzenia odpowiednich list stop. Aby uzyskać informacje na temat aktualizowania plików wyrazów szumu do list zatrzymania, zajrzyj do Upgrade Full-Text Search.