Řešení potíží s fulltextovým indexováním

platí pro:SQL ServerAzure SQL Databaseazure SQL Managed Instance

Řešení problémů s indexováním plného textu

Při vyplňování nebo udržování indexu plného textu může indexátor úplného textu z důvodů popsaných v následujícím seznamu selhat indexovat jeden nebo více řádků. Tyto chyby na úrovni řádků nebrání populaci v dokončení. Indexer tyto řádky přeskočí, což znamená, že nemůžete dotazovat obsah v těchto řádcích.

K selháním indexování může dojít v případech:

  • Indexátor nemůže najít ani načíst filtr nebo komponentu pro dělení slov. Toto selhání může nastat, pokud řádek tabulky obsahuje formát dokumentu nebo obsah v jazyce, který není registrován v instanci SQL Server. K tomuto selhání může dojít také v případě, že registrovaná komponenta pro dělení slov nebo filtrační komponenta nejsou podepsané nebo že při načítání komponenty selže ověření podpisu. Azure SQL a Azure SQL Managed Instance nepodporují nástroje třetích stran pro dělení slov.

  • Komponenta, například word breaker nebo filtr, selže a vrátí chybu indexeru. Toto selhání může nastat, pokud je indexovaný dokument poškozený a filtr nemůže z dokumentu extrahovat text. Toto selhání může nastat i tehdy, když komponenta nedokáže zpracovat obsah jednoho řádku, jehož velikost překračuje určitou mez, v důsledku omezení paměti na hostiteli démona filtru fulltextového vyhledávání (fdhost.exe).

Pro každé selhání na úrovni řádků obsahuje protokol procházení podrobnosti o důvodu selhání. Počty chyb se shrnují na konci úplné nebo přírůstkové populace.

Další selhání mohou ovlivnit proces indexace a zabránit populaci dokončit:

  • Index plného textu přesahuje limit počtu řádků, které může katalog s plným textem obsahovat.

  • Upravíte, odstraníte nebo znovu vytvoříte shlukovaný index nebo index plného textu klíče na tabulce, která je indexována.

  • Selhání hardwaru nebo poškození disku vede k poškození fulltextového katalogu.

  • Souborová skupina, která obsahuje tabulku indexovanou jako plnotextová, přejde do offline režimu nebo je nastavena pouze na čtení.

Prohlédněte si crawl log na konci jakékoli významné operace s plnotextovým indexem populace, nebo když zjistíte, že populace nebyla dokončena.

Nepopsané komponenty

Ve výchozím nastavení požaduje fulltextový indexer, aby filtry a oddělovače slov, které načítá, byly podepsány. Pokud nejsou podepsané, což se může stát při instalaci vlastních komponent, musíte nastavit full-text indexer tak, aby ignoroval ověřování podpisů.

Důležitý

Při ignorování ověření podpisu je instance SQL Serveru méně zabezpečená. Měli byste podepsat všechny komponenty, které implementujete, nebo zajistit, aby všechny komponenty, které získáte, byly podepsané. Informace o podepisovacích komponentách najdete v sp_fulltext_service.

Fulltextový index v nekonzistentním stavu po obnovení transakčního logu

Při obnově transakčního logu databáze se může objevit varování, že index plného textu není v konzistentním stavu. Toto varování se objevuje, protože byl po zálohování databáze upraven index celého textu tabulky. Chcete-li uvést fulltextový index do konzistentního stavu, musíte v tabulce spustit úplné procházení. Další informace najdete viz naplnění Full-Text indexu.