Best Practices for Choosing a Language When Creating a Full-Text Index
Podczas tworzenia indeksu pełnotekstowego, należy określić kolumna-poziom języka dla kolumna indeksowanej.The word breaker and stemmers of the specified language will be used by full-text queries on the 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 tekst, a następnie zaindeksowane przez aparat Full-Text.
Uwaga
Aby określić kolumna-poziom języka dla kolumna indeks pełnotekstowy, użyj języka language_term Klauzula, określając kolumna. Aby uzyskać więcej informacji zobacz CREATE FULLTEXT INDEX (Transact-SQL) i ALTER więcej INDEX (języka Transact-SQL).
Program Word podziały
Dzielenie wyrazów tokenizes indeksowany w granicach słowo, które są specyficzne dla 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, dla indeksu w wielu językach {x, y i z}, niektóre z zachowaniem może spowodować nieoczekiwane rezultaty.Element podziału wyrazu, który ma być wyrzucać w jednym języku, ale nie w innym może być na przykład kreskę (-) ani przecinka (,).Rzadko nieoczekiwane zachowanie stemming może również występować, ponieważ dany wyraz może wywodzą się inaczej w innym języku.Na przykład w języku angielskim, wyraz granice są zazwyczaj spacji lub inne znaki interpunkcyjne.W innych językach, takich jak niemiecki wyrazy lub znaki mogą być połączone ze sobą.Dlatego języka poziomie kolumna wybrane powinien reprezentować języka, które będą przechowywane w wierszach kolumna.
Języki zachodnie
Z języków zachodnich rodziny Jeżeli masz pewności, które języki będą przechowywane kolumna lub oczekiwać więcej niż jedną mają być przechowywane ogólne obejścia tego problemu jest użycie dzielącego języka najbardziej złożone, które mogą być przechowywane kolumna.Na przykład może oczekiwać na język angielski, hiszpański i niemiecki zawartość jest przechowywana w jednej kolumnie.Tych trzech języków zachodnich mają bardzo podobne wzorce dzielenia wyrazów, za pomocą deseni niemieckim, przy czym najbardziej złożone.Dlatego dobrym rozwiązaniem jest tym przypadek byłoby niemieckim dzielącego, które powinny być w stanie prawidłowo przetworzyć tekstu w języku angielskim i hiszpański.Z drugiej strony dzielenie wyrazów w języku angielskim może nie przetwarzają tekstu w języku niemieckim doskonale ze względu na wyrazy złożone z niemieckiej.
Należy zauważyć, że użycie dzielącego najbardziej złożone języka w rodzinie języków nie gwarantuje doskonałe indeksowanie każdego języka, w systemach z rodziny.Narożnik przypadków może istnieć, w której najbardziej złożone dzielącego nie może poprawnie obsługiwać tekstu napisanego w innym języku.
Języki inne niż zachodni
W językach innych niż zachodnich (np. chiński, japoński, Hindi i tak dalej) powyższe rozwiązania nie zawsze działa, ze względu na językowej.W językach innych niż zachodnich wziąć pod uwagę jedną z następujących rozwiązań:
W przypadku 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ć przechowywaniu zawartości w różnych językach w oddzielnych kolumnach.Umożliwi to dla każdej kolumna, należy użyć dzielącego specyficzne dla danego języka.Jeśli zostanie wybrana opcja to rozwiązanie i użytkownik nie zna język kwerendy na kwerendę czas, może zajść potrzeba wysłania kwerendy dla obu kolumn w celu zapewnienia, że kwerendy znajduje wiersz po prawej lub dokumentu.
Dla binarnych zawartości (takie jak dokumenty programu Microsoft Word)
Kiedy jest indeksowanej zawartości binary Wpisz filtr przeszukiwanie pełnego tekstu, który przetwarza zawartość tekstową, przed wysłaniem ich do dzielącego może przyjąć istniejącego pliku binarnego w obrębie tagów języka. W takim przypadek podczas indeksowania, filtr będzie wysyłać prawym LCID dla dokumentu lub sekcji dokumentu.Aparat pełny tekst będzie następnie wywoływać dzielącego dla języka, w tym identyfikator LCID.Po indeksowanie zawartości języka multi, zaleca się jednak sprawdzić, czy zawartość została poprawnie indeksowana.
Dla zawartości w formacie zwykłego tekstu
Gdy zawartość jest zwykły tekst, możesz przekonwertować ją na xml dane należy wpisać i dodać tagi języka wskazuje język odpowiadający każdego określonego dokumentu lub sekcji dokumentu. W tym celu praca jednak należy znać języka przed pełnotekstowy.
Mapowanie rdzeni
Dodatkowe pod uwagę podczas dokonywania wyboru języka poziom kolumna jest mapowanie rdzeni.Mapowanie rdzeni w kwerendach pełnego tekstu polega na wyszukiwaniu wszystkich stemmed (inflectional) 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 stemmers nie działają w języku angielskim lub hiszpańskim (itd).Może mieć wpływ na Twój zależnie od odwołanie od języka, w którym zostanie wybrana w kwerendzie czas.
Wpływ metoda Magazyn danych przeszukiwanie pełnego tekstu
Kolejne zagadnienie w wybór języka jest powiązana z jak dane są reprezentowane.Dane, które nie są przechowywane w varbinary(max) kolumna nie specjalne filtrowanie jest wykonywane. Zamiast tekstu na ogół jest przekazywany przez składnik dzielenia wyrazów, jak - jest.
Ponadto wyłączników słowa są przeznaczone głównie do przetworzenia napisany tekst.Tak jeśli każdy typ adjustacji (na przykład HTML) na tekst, nie może uzyskać dużą dokładnością lingwistyczne podczas indeksowania i wyszukiwania.W takim przypadek użytkownik ma dwie możliwości — preferowaną metodą jest po prostu do przechowywania danych tekstowych w varbinary(max) kolumna oraz do wskazania jego typ dokumentu, dzięki czemu mogą być filtrowane. Nie jest to opcja, można rozważyć używanie neutralne dzielącego, jeśli jest to możliwe, Dodawanie znaczników danych (na przykład „ br"w języku HTML) do swojego wyraz ignorowany list lub.
Uwaga
Mapowanie rdzeni opartych na języku nie pochodzi do gry w przypadku określenia Język neutralny.
Określanie niestandardowe kolumna-poziom język kwerendy pełnego tekstu
Domyślnie w SQL Server 2008, przeszukiwanie pełnego tekstu będzie analizować warunków kwerendy, używając języka określonego dla każdej kolumna, która nie znajduje się w klauzula pełnego tekstu. Aby zastąpić to zachowanie, należy określić język innej niż domyślna w czasie kwerendy.Obsługiwane języki, których zasoby są zainstalowane, język language_term Klauzula ZAWIERA, CONTAINSTABLE, FREETEXT, or FREETEXTTABLE kwerendy może służyć do określania języka używanego do dzielenia, mapowanie rdzeni, tezaurus i stopword tekstów warunków kwerendy.
Obsługa języka
Ta sekcja zawiera wprowadzenie do wyrazu wyłączników i stemmers i w tym artykule omówiono sposób przeszukiwanie pełnego tekstu używa LCID języka poziomie kolumna.
Wprowadzenie do programu Word podziały i Stemmers
SQL Server 2008 zawiera kompletny rodziny nowy wyraz wyłączników i stemmers, które są znacznie lepiej niż te dostępne wcześniej w SQL Server.
Uwaga
Grupa językowa Natural firmy Microsoft (MS NLG) wykonane i obsługuje te nowe składniki językowe.
Nowe wyłączników wyraz przynieść następujące korzyści:
Niezawodności
Testowanie wykazało, że nowe wyłączników słowa są niezawodne w środowiskach wysokociśnieniowych kwerendy.
Zabezpieczenia
Nowe wyłączników słowa są domyślnie włączone w SQL Server 2008 Dzięki ulepszenia zabezpieczeń w składnikach językowe. Zdecydowanie zaleca się, zewnętrzne składniki, takie jak wyraz wyłączników i filtry musi być zarejestrowany, aby zwiększyć ogólne bezpieczeństwo i niezawodność programu SQL Server. Można skonfigurować pełnego tekstu do sprawdzenia, czy te składniki są podpisane w następujący sposób:
EXEC sp_fulltext_service 'verify_signature';Jakość
Word wyłączników mają zostało przeprojektowane i badania wykazały, że nowe wyłączników wyraz zapewniają lepiej semantyki jakości niż wyłączników poprzedniego wyrazu.Powoduje to zwiększenie dokładności odwołania SQL Server 2008 Użytkownicy.
Zapotrzebowania
Ogromna listę języków wyłączników słowa są zawarte w SQL Server 2008 pola i domyślnie włączona.
Aby uzyskać listę języków, dla którego SQL Server 2008 Dzielenie wyrazów i stemmers, zobacz sys.fulltext_languages (języka Transact-SQL).
Podziały strony trzeciej w programie Word
Kilka zewnętrznych wyłączników wyraz innej firmy są dostępne dla SQL Server 2008. Można ręcznie rejestrować wyłączników tych wyrazów.Aby uzyskać więcej informacji zobaczJak Ładowanie podziały licencjonowanego Third-Party programu Word.
Po załadowaniu wyraz zewnętrzne (firm) wyłączników, należy odświeżyć listę obsługiwanych języków pełnego tekstu przez sp_fulltext_service systemowa procedura składowana Określanieupdate_languages Opcja w następujący sposób:
EXEC sp_fulltext_service 'update_languages';
Następnie języków wyłączników nowo załadowanego wyraz zostanie wystawiony przez sys.fulltext_languages Służy do wyświetlania katalogu.
W jaki sposób wyszukiwanie używa nazwy języka, poziom kolumna
Podczas tworzenia indeksu pełnotekstowego, musisz podać nazwę prawidłowego języka, dla każdej kolumna.Jeśli nazwa języka są prawidłowe, ale nie są zwracane przez sys.fulltext_languages (języka Transact-SQL) katalogowanie widoku przeszukiwanie pełnego tekstu przechodzi na najbliższy dostępny nazwę rodziny języka, jeśli istnieje. W przeciwnym wypadku wyszukiwanie pełnotekstowe nastąpi powrót do neutralna dzielącego.To zachowanie Jesień z powrotem może mieć wpływ na dokładność odwołania.Zaleca się więc aby określić nazwę języka prawidłowe i dostępne dla każdej kolumna, podczas tworzenia indeksu pełnotekstowego.
Uwaga
LCID jest używana dla wszystkich typów danych kwalifikujące się do całego tekstu (takie jak indeksowanie char lub nchar). Jeśli kolejność sortowania char, varchar, lub text zestaw kolumn wpisz ustawienie różni się od języka, identyfikowane przez identyfikator LCID języka, LCID jest używany mimo to podczas pełnotekstowe indeksowanie i wyszukiwanie tych kolumn.
See Also