Najważniejsze wskazówki dotyczące Wybieranie języka podczas tworzenia indeksu pełnotekstowego
Podczas tworzenia indeksu pełnotekstowego, należy określić kolumna -poziom języka dla kolumna indeksowanej.Dzielącego i programy szukające rdzeni określonego języka, będą używane przez kwerendy pełnego tekstu na kolumna.Istnieje kilka rzeczy, które należy wziąć pod uwagę przy wyborze kolumna języka podczas tworzenia indeksu pełnotekstowego.Zagadnienia te odnoszą się do sposobu tokenized tekstu i następnie indeksowane przez aparat pełnego tekstu.
Ostrzeżenie
Aby określić kolumna -poziom języka dla kolumna indeksu pełnotekstowego używają języka language_term klauzula określając kolumna.Aby uzyskać więcej informacji, zobacz Utwórz indeks PEŁNOTEKSTOWY (Transact-SQL) i ZMIENIĆ indeks PEŁNOTEKSTOWY (Transact-SQL).
Moduły dzielenia wyrazów
Dzielenie wyrazów tokenizes indeksowany w granicach programu word, które są języka tekstu.Dlatego dzielenia wyrazów zachowanie różni się między różnymi językami.Jeśli korzystasz z jednego języka x do indeksowania liczbę języków {x, y i z}, niektóre zachowania może powodować nieoczekiwane wyniki.Na przykład element dzielenie wyrazów, który będzie wyrzucać w jednym języku, ale w innym może być myślnik (-) lub przecinek (,).Rzadko nieoczekiwane zachowanie stemming może również wystąpić, ponieważ danego programu word może wywodzą się inaczej w innym języku.Na przykład w języku angielskim program word granice są zazwyczaj owiatło lub niektóre formy znaków interpunkcyjnych.W innych językach, takich jak niemiecki wyrazy lub znaki mogą być połączone ze sobą.Dlatego kolumna -poziom język wybrany powinien reprezentować języka, który oczekuje, będą przechowywane w wierszach kolumna.
Języków zachodnich
Zachodnia rodziny języków Jeśli masz pewności, które języki będą przechowywane kolumna lub oczekiwać więcej niż jedną składowane, ogólne rozwiązanie jest użycie dzielącego języka najbardziej złożonych, które mogą być przechowywane kolumna.Dla wystąpienie, można oczekiwać przechowywania zawartości angielski, hiszpański i niemiecki w pojedynczej kolumnie.Tych trzech języków zachodnich posiadają bardzo podobne desenie dzielenia wyrazów z niemieckim wzorki są najbardziej złożonych.Dlatego dobrym rozwiązaniem jest tym przypadek byłoby użyć niemieckim dzielącego, które powinny być w stanie poprawnie przetwarzać tekst w języku angielskim i hiszpańskim.Natomiast angielski dzielącego może nie przetwarza niemiecką doskonale z powodu wyrazy złożone niemiecki.
Należy zauważyć, że za pomocą dzielącego najbardziej złożonych język z rodziny języków nie gwarantuje doskonałe indeksowania każdy język z rodziny.Narożnik przypadków może istnieć, w których najbardziej złożonych dzielącego nie obsługiwać poprawnie tekstu napisanego w innym języku.
Języków innych niż zachodnich
Dla języków innych niż zachodnich (takich jak chiński, japoński, Hindi i tak dalej) powyższe rozwiązania nie zawsze działają, ze względów językowych.Dla języków innych niż zachodnich należy rozważyć następujące rozwiązania:
Dla języków z różnych rodzin
Jeśli kolumna może zawierać znacznie w różnych językach, na przykład, hiszpański i japoński, należy rozważyć przechowywanie zawartości różnych języków w oddzielnych kolumnach.Umożliwi to użyj dzielącego językowe dla każdej kolumna.Jeśli wybierzesz to rozwiązanie i nie znasz języka kwerend w kwerendzie czas, należy wydać zapytanie obu kolumnach kwerendy stwierdzi, prawo wiersz lub dokument.
Dla zawartości binarny (na przykład dokumentów Microsoft Word)
Kiedy indeksowanej zawartości jest binary typu filtru przeszukiwanie pełnego tekstu, który przetwarza tekstowej zawartości przed wysłaniem go do dzielącego może przestrzegać określonego języka znaczniki istniejącego pliku binarnego.W takim przypadek w indeksowania czas, filtr będzie emitują prawo LCID dla dokumentu lub sekcji dokumentu.Aparat pełnego tekstu będzie wywoływać dzielącego z tym LCID języka.Po indeksowanie multi language zawartość, zalecane Zweryfikuj, że zawartość została poprawnie indeksowana.
Dla zawartości zwykłego tekstu
Gdy zawartość jest zwykły tekst, można przekonwertować go do xml Typ danych i Dodaj tagi języka, które wskazują język odpowiadający każdego konkretnego dokumentu lub sekcji dokumentu.W tym celu działają jednak trzeba znać język przed indeksowania pełnotekstowego.
Tematyzacja
Dodatkową zapłatę przy wyborze kolumna -poziom wynikające języka.Tematyzacja w kwerendach pełnego tekstu jest proces wyszukiwania dla wszystkich wynikało (słowa ignorowanego) Form wyrazu w określonym języku.Podczas przetwarzania kilku językach za pomocą rodzajowy dzielącego stemming proces działa tylko w języku określonym dla kolumna, a nie dla innych języków kolumna.Na przykład niemieckim programy szukające rdzeni nie działają w języku angielskim lub hiszpański (itd).To może mieć wpływ na Twoje zależnie od odwołania język, który wybrano w kwerendzie czas.
Wpływ metody przechowywania danych na wyszukiwanie pełnotekstowe
Kolejne zagadnienie w wybór języka jest powiązana z jak dane są reprezentowane.Dane, które nie są przechowywane w varbinary(max) wykonywane kolumna nie specjalne filtrowanie.Zamiast tekstu ogólnie są przekazywane składnik dzielenia wyrazu, jak-jest.
Ponadto moduły dzielenia wyrazów są przeznaczone głównie do przetwarzania napisany tekst.Tak Jeśli tekst dowolnego typu Markup Language (takie jak HTML), nie może uzyskać dużą dokładnością lingwistyczne podczas indeksowania i wyszukiwania.W takim przypadek użytkownik ma dwie możliwości — preferowany metoda jest po prostu do przechowywania danych tekstowych w varbinary(max) kolumna oraz do wskazania jego typ dokumentu, więc mogą być filtrowane.Jeśli nie jest to opcja, można rozważyć użycie dzielącego neutralny i jeśli to możliwe, dodanie znaczników danych (takich jak "br" w języku HTML) wyraz ignorowany list.
Ostrzeżenie
Język podstawie wynikające nie wchodzić w grę, określając język neutralny.
Określanie języka poziomie niedomyślnych kolumny w kwerendzie pełnego tekstu
Domyślnie w SQL Server 2008, przeszukiwanie pełnego tekstu analizuje warunki kwerendy przy użyciu języka określone dla każdej kolumna znajduje się w klauzula pełnego tekstu.Aby zmienić to zachowanie, należy określić język inny niż domyślny w kwerendzie czas.Obsługiwane języki, w których zasoby są zainstalowane, język language_term klauzula ZAWIERA, CONTAINSTABLE, FREETEXT, lub FREETEXTTABLE kwerendy można określić język używany do podziału, wynikające, tezaurus i stopword tekstów warunków kwerendy.
Obsługa języka
Ta sekcja zawiera wprowadzenie do moduły dzielenia wyrazów i programy szukające rdzeni i omówiono sposób przeszukiwanie pełnego tekstu używa LCID kolumna-poziom języka.
Wprowadzenie do moduły dzielenia wyrazów i programy szukające rdzeni
SQL Server 2008zawiera pełną rodziny nowe moduły dzielenia wyrazów i programy szukające rdzeni, które są znacznie lepsze niż dostępne wcześniej w tych SQL Server.
Ostrzeżenie
Grupy języka naturalnego firmy Microsoft (MS NLG) wykonane i obsługuje składniki językowej.
Nowe moduły dzielenia wyrazów zapewnia następujące korzyści:
Niezawodności
Testy wykazały, że nowe moduły dzielenia wyrazów są rozbudowane w środowiskach wysokociśnieniowych kwerendy.
Zabezpieczenia
Nowe moduły dzielenia wyrazów są domyślnie włączone w SQL Server 2008 dzięki do poprawy bezpieczeństwa lingwistyczne składników.Zdecydowanie zaleca się składników zewnętrznych, takich jak moduły dzielenia wyrazów i filtry być podpisane poprawy ogólnej zabezpieczeń i niezawodności z SQL Server.Można skonfigurować pełnotekstowego, aby zweryfikować te składniki są podpisane w następujący sposób:
EXEC sp_fulltext_service 'verify_signature';
Jakość
Przeprojektowano moduły dzielenia wyrazów i testy wykazały, że nowe moduły dzielenia wyrazów zapewnia lepsze semantyczne jakość niż poprzednie moduły dzielenia wyrazów.Zwiększa dokładność odwołania dla SQL Server 2008 użytkowników.
Zapotrzebowania
Ogromna listę języków, moduły dzielenia wyrazów są zawarte w SQL Server 2008 pola i domyślnie włączona.
Aby uzyskać listę języków, dla których SQL Server 2008 zawiera dzielenie wyrazów i programy szukające rdzeni, zobacz sys.fulltext_languages (języka Transact-SQL).
Moduły dzielenia wyrazów firm
Zewnętrzne kilka firm moduły dzielenia wyrazów są dostępne dla SQL Server 2008.Można ręcznie zarejestrować te moduły dzielenia wyrazów.Aby uzyskać więcej informacji, zobacz Jak Załadować moduły dzielenia wyrazów licencjonowanych firm.
Po załadowaniu word zewnętrzne (producentów) wyłączników, należy odświeżyć listę obsługiwanych języków pełnego tekstu przez wykonywanie sp_fulltext_service systemowa procedura składowana Określanie update_languages opcji następująco:
EXEC sp_fulltext_service 'update_languages';
Następnie języków wyłączników bezpośrednio po załadowaniu programu word zostanie wystawiony przez sys.fulltext_languages wykazu widoku.
Sposób wyszukiwania pełnotekstowego używa nazwy języka poziomie kolumny
Podczas tworzenia indeksu pełnotekstowego, trzeba określić nazwę prawidłowego języka dla każdej kolumna.Jeśli nazwa języka jest prawidłowe, ale nie są zwracane przez sys.fulltext_languages (języka Transact-SQL) wykazu widoku przeszukiwanie pełnego tekstu przechodzi na najbliższy dostępny język nazwę tej samej rodziny języka ewentualne.W przeciwnym wypadku przeszukiwanie pełnego tekstu przechodzi do neutralnej dzielącego.To zachowanie awaryjne może wpłynąć na dokładność odwołania.Dlatego zaleca się określić nazwę języka prawidłowe i dostępne dla każdej kolumna, podczas tworzenia indeksu pełnotekstowego.
Ostrzeżenie
LCID jest używane wobec wszystkich kwalifikujących się do indeksowania pełnotekstowego typów danych (takich jak char lub nchar).Jeśli kolejność sortowania sortowania char, varchar, lub text typu zestaw kolumn ustawienie inny niż język identyfikowane przez LCID języka, LCID jest używany mimo to podczas pełnotekstowego indeksowania i kwerend do tych kolumn.
Zobacz także