|
|
OpublikowanoWczoraj o 20:20
|
|
|
|

Wyszukiwanie pełnotekstowe jest opcjonalnym elementem silnika bazy danych SQL Server. Jeśli nie wybrałeś wyszukiwania pełnego tekstu podczas instalacji SQL Server, ponownie uruchom instalator SQL Server, aby go dodać.
Przegląd
Indeks pełnego tekstu zawiera jedną lub więcej kolumn znakowych w tabeli. Kolumny te mogą zawierać dowolny z następujących typów danych: char, varchar, nchar, nvarchar, text, ntext, image, xml lub varbinary(max) oraz FILESTREAM. Każdy indeks pełnego tekstu tworzy indeks dla jednej lub więcej kolumn w tabeli, a każda kolumna może używać określonego języka.
Zapytania pełnotekstowe działają na słowach i frazach, zgodnie z zasadami określonych języków (takich jak angielski czy japoński), wykonując wyszukiwanie językowe na podstawie danych tekstowych zawartych w indeksie pełnym tekstem. Zapytania pełne tekstu mogą zawierać proste słowa i zwroty lub różne formy słów czy zwrotów. Zapytanie pełne tekstowe zwraca wszystkie dokumenty zawierające co najmniej jedno dopasowanie (znane również jako "trafienie"). Dopasowanie występuje, gdy dokument docelowy zawiera wszystkie terminy określone w pełnym tekście zapytania i spełnia inne kryteria wyszukiwania (takie jak odległość między pasującymi terminami).
Linux Docker MSSQL 2022 Instalacja usługi wyszukiwania pełnego tekstu
Źródła są następujące:
Sprawdź, czy funkcja wyszukiwania pełnego tekstu w SQL SERVER jest zainstalowana
Polecenie brzmi następująco:
Pełnotekstowe wyszukiwanie SQL Server, indeks pełnotekstowy
Najpierw stwórz nową bibliotekę testową i wstaw dane testowe. Skrypt wygląda następująco:
Stwórz pełnotekstowy spis treści
Pełnotekstowy spis treści służy do przechowywania indeksu pełnego tekstu. Możesz ją stworzyć bezpośrednio, używając następujących skryptów:
Tworzenie pełnotekstowych indeksów dla tabel baz danych
Tworząc indeks pełnotekstowy dla tabeli bazy danych, musisz określić odpowiadający mu język. Ponieważ segmentacja słów różni się w zależności od języka, SQL Server wykorzysta segmentację słów odpowiadającego mu języka do przetwarzania danych w tabeli. Pełnotekstowe wyszukiwanie SQL Server obsługuje około 50 różnych języków, pozwalając na przeglądanie wszystkich obsługiwanych języków poprzez zapytania sys.fulltext_languages tabel. Komenda:
Jak pokazano poniżej:
Następnie dodajemy pełnotekstowy indeks dla chińskiego uproszczonego do pól Tytuł i Treść w tabeli Wiadomości:
Pełnotekstowe wyszukiwanie predykatów i funkcji
Zapytania pełne tekstu wykorzystują predykaty pełne tekstu (ZAWIERAiWOLNY TEKST) oraz funkcje pełnotekstowe (CONTAINSTABLEiFREETEXTTABLE)。 Obsługują złożoną składnię Transact-SQL, która obsługuje różne formy zapytań.
Różnica między CONTAINS a FREETEXT
CONTAINS: Logowanie do linku jest widoczne.
Stosuj precyzyjne metody dopasowywania, aby znaleźć konkretne słowa lub frazy w tekście. Obsługuje złożone warunki zapytania, takie jak wyszukiwanie w pobliżu (na przykład słowa muszą pojawiać się blisko siebie), wyszukiwanie prefiksów i inne. Zazwyczaj stosuje się go w sytuacjach, gdy potrzebna jest bardziej precyzyjna kontrola wyników wyszukiwania.
FREETEXT: Logowanie do linku jest widoczne.
Zapewnia bardziej elastyczne i oparte na języku naturalnym doświadczenie wyszukiwania. Nie są wymagane specjalne kryteria wyszukiwania; Automatycznie analizuje tekst wejściowy i próbuje znaleźć powiązane treści. Jest bardziej odpowiedni dla użytkowników, którzy chcą wykonywać proste wyszukiwania słów kluczowych, jak Google, bez martwienia się o konkretne lokalizacje czy formaty.
Polecenia są następujące:
Jak pokazano poniżej:
CONTAINSTABLE i FREETEXTTABLE
CONTAINSTABLE zwraca tabele spełniające kryteria zapytania. W instrukcjach SQL możemy traktować je jako regularne tabele, a zapytania za pomocą CONTAINSTABLE zwracają wartość RANK oraz KEY dla każdego wiersza. RANK służy do wskazania stopnia zgodności korelacji, z wartościami między 0~1000, a KEY to ID głównej tabeli. FREETEXTTABLE najpierw segmentuje słowa i zdania do zapytania, a następnie zapytania do dopasowania. Polecenie brzmi następująco:
Jak pokazano poniżej:
Dodatkowo możesz sprawdzić wyniki segmentacji, zadając sys.dm_fts_parser:
Jak pokazano poniżej:
problem
Pytanie: CONTAINS domyślnie nie obsługuje zapytań rozmytych. Jeśli wpiszesz CONTAINS(Column, 'apple'), dopasuje się do słowa korzeniowego (np. apples), ale nie do pineapple. Rozwiązanie: Jeśli potrzebne są zapytania rozmyte, muszą być umieszczone przed i za dzikimi kartamiDodaj podwójne cudzysłowy i gwiazdkę:ZAWIERA(Kolumna, '"*jabłko*"')
Odniesienie:
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne. |
Poprzedni:Strona internetowa do pracy zdalnej, pracy i freelancera
|