Udostępnij za pośrednictwem


Indeksu pełnotekstowego w kolumnie XML

W kolumnach XML, które indeksy zawartości wartości XML, ale ignoruje adiustacji XML można utworzyć indeksu pełnotekstowego.Element tagi są używane jako granice tokenu.Indeksowane są następujące elementy:

  • Zawartość elementów XML.

  • Zawartość atrybutów XML najwyższego poziom elementu tylko, o ile te wartości są wartościami numerycznymi.

Jeśli to możliwe, można połączyć przeszukiwanie pełnego tekstu indeksu XML w następujący sposób:

  1. Po pierwsze filtr interesujących wartości XML za pomocą przeszukiwanie pełnego tekstu programu SQL.

  2. Następnie zbadać te wartości XML, korzystających z indeksu XML w pliku XML kolumna.

Przykład: Łączenie z XML kwerendy wyszukiwania pełnotekstowego

Po utworzeniu indeksu pełnotekstowego kolumna XML następującej kwerendy sprawdza, czy wartość XML zawiera wyraz "niestandardowe" w tytule książki:

SELECT * 
FROM   T 
WHERE  CONTAINS(xCol,'custom') 
AND    xCol.exist('/book/title/text()[contains(.,"custom")]') =1

Contains() metoda używa indeksu pełnotekstowego do podzbiór wartości XML zawierających wyraz "niestandardowe" gdziekolwiek w dokumencie.Exist() klauzula zapewnia, że wyraz "niestandardowe" występuje w tytuł książki.

Przeszukiwanie pełnego tekstu, który używa contains() i XQuery contains() ma semantyka różne.Jest on dopasowania podciągu i jest dopasowanie tokenu, który używa wynikające.Dlatego jeżeli wyszukiwanie jest dla ciąg , ma "Uruchom" w tytule dopasowania będzie zawierać "Uruchom", "działa" i "Uruchamianie", ponieważ oba pełnego tekstu contains() i Xquery contains() są spełnione.However, the query does not match the word "customizable" in the title in that the full-text contains() fails, but the Xquery contains() is satisfied.Ogólnie, dla dopasowania podciągu czystego, pełnego tekstu contains() klauzula powinny zostać usunięte.

Ponadto przeszukiwanie pełnego tekstu, wykorzystuje mapowanie rdzeni słów, ale XQuery contains() odpowiada literału.Ta różnica jest zilustrowane w następnym przykładzie.

Przykład: Przeszukiwanie pełnego tekstu na wartości XML przy użyciu wynikające

XQuery contains() Sprawdź, czy została wykonana w poprzednim przykładzie ogólnie nie wyeliminować.Należy rozważyć tej kwerendy:

SELECT * 
FROM   T 
WHERE  CONTAINS(xCol,'run') 

Wyraz "ran" w dokumencie jest zgodna z powodu wynikające warunek wyszukiwania.Ponadto kontekst wyszukiwania nie jest sprawdzany za pomocą XQuery.

Gdy XML cenowego relacyjnej kolumn przy użyciu AXSD, które są indeksowane pełnego tekstu, kwerend XPath, które są wykonywane przez Widok XML należy wykonywać przeszukiwanie pełnego tekstu w podstawowych tabelach.

Zobacz także

Koncepcje