Přeskočit na hlavní obsah

Full-Text vyhledávání

Alvao může rychle vyhledávat informace v databázi pomocí Full-Text Search (FTS) technologie. Pokud je funkce FTS vypnutá, může být vyhledávání pomalé a funkce vyhledávání v protokolech tipů není vůbec k dispozici.

Poznámka

Pokud byla v době upgradu systému Alvao na aktuální verzi na serveru SQL Server nainstalována komponenta Full-Text and Semantics Extractions for Search, bude komponenta FTS při upgradu automaticky povolena.

Varování

Pokud je fulltextové vyhledávání zakázáno, nebude možné vyhledávat v komunikaci.

Zaškrtněte pro povolení Full-Text vyhledávání

Zkontrolujte instalaci FTS a nastavení pomocí SQL skriptu:

IF (1 != ISNULL(fulltextserviceproperty('IsFulltextInstalled'),0)) PRINT N'FTS není nainstalován.' ELSE
IF (1 != ISNULL((SELECT 1 FROM [dbo].[sysfulltextcatalogs] WHERE name = 'ftCatalogAlvao'),0))
PRINT N "FTS není povolen. ELSE PRINT N "FTS je nainstalován a povolen.

Pokud není FTS nainstalována, nainstalujte do SQL Serveru komponentu Full-Text and Semantics Extractions for Search, která je volitelnou součástí SQL Database Engine. Tuto komponentu můžete nainstalovat během počáteční instalace MS SQL serveru, nebo můžete install později s instalačním programem SQL Server pro jakoukoliv verzi.

Poznámka

Od verze 2012 již SQL Server nepovažuje podtržítko ("_") za výchozí oddělovač slov. Z tohoto důvodu nelze od této verze vyhledávat jednotlivá slova, která jsou v textu oddělena podtržítkem, ale musíte do vyhledávače zadat celou "frázi" včetně podtržítek nebo počáteční části fráze. Pokud vám toto chování nevyhovuje, můžete nastavit SQL Server tak, aby používal stejné oddělovače slov jako starší verze.

Full-Text vyhledávání

Varování

Doporučuje se zapínat FTS mimo běžnou provozní dobu společnosti Alvao. Po zapnutí FTS začne SQL Server vytvářet indexy pro vyhledávání, což může dočasně snížit výkon SQL Serveru.

Pokud není v databázi Alvao povolena služba FTS, spusťte následující skript SQL.Pro jeho spuštění musíte být členem skupiny sysadmin, db_owner nebo db_ddladmin.

DECLARE @languageLCID int;
SELECT TOP 1 @languageLCID = lcid from syslanguages where langid = @@DEFAULT_LANGID;
DECLARE @CreateFulltext nvarchar(MAX);
SET @CreateFulltext = N'CREATE FULLTEXT CATALOG ftCatalogAlvao WITH ACCENT_SENSITIVITY = OFF AS DEFAULT;
CREATE FULLTEXT INDEX ON tHdTicket (FullTextSearch LANGUAGE '+CAST(@languageLCID AS nvarchar)+N', mHdTicketNotice LANGUAGE '+CAST(@languageLCID AS nvarchar)+N', sHdTicket LANGUAGE '+CAST(@languageLCID AS nvarchar)+N') KEY INDEX PK_tHdTicket_iHdTicketId WITH STOPLIST OFF;
CREATE FULLTEXT INDEX ON tAct (sAct LANGUAGE '+CAST(@languageLCID AS nvarchar)+N', mActNotice LANGUAGE '+CAST(@languageLCID AS nvarchar)+N', sActFrom LANGUAGE '
+CAST(@languageLCID AS nvarchar)+N', sActTo LANGUAGE '+CAST(@languageLCID AS nvarchar)+N', sActToEmail LANGUAGE '+CAST(@languageLCID AS nvarchar)+N', sActFromEmail LANGUAGE '
+CAST(@languageLCID AS nvarchar)+N') KEY INDEX PK_tAct_iActId WITH STOPLIST OFF;
CREATE FULLTEXT INDEX ON tDocument (sDocument LANGUAGE '+CAST(@languageLCID AS nvarchar)+N', OcrText LANGUAGE '+CAST(@languageLCID AS nvarchar)+N') KEY INDEX PK_tDocument_iDocumentId WITH STOPLIST OFF;
CREATE FULLTEXT INDEX ON tArticle (HtmlArticleBinary TYPE COLUMN HtmlArticleBinaryExt, sArticle LANGUAGE '+CAST(@languageLCID AS nvarchar)+N', mArticleAnnotation LANGUAGE '+CAST(@languageLCID AS nvarchar)+N', mArticle LANGUAGE '+CAST(@languageLCID AS nvarchar)+N') KEY INDEX PK_tArticle_iArticleId;
CREATE FULLTEXT INDEX ON ArticleLoc (Name LANGUAGE '+CAST(@languageLCID AS nvarchar)+N', Annotation LANGUAGE '+CAST(@languageLCID AS nvarchar)+N', Text LANGUAGE '+CAST(@languageLCID AS nvarchar)+N', HtmlText LANGUAGE '+CAST(@languageLCID AS nvarchar)+N') KEY INDEX PK_ArticleLoc_Id;
CREATE FULLTEXT INDEX ON tHdTicketApprovalItem (mHdTicketApprovalItemNotes LANGUAGE '+CAST(@languageLCID AS nvarchar)+N') KEY INDEX PK_tHdTicketApprovalItem WITH STOPLIST OFF;
CREATE FULLTEXT INDEX ON HdSectionLoc (HdSectionKeywords LANGUAGE '+CAST(@languageLCID AS nvarchar)+N') KEY INDEX PK_HdSectionLoc_HdSectionLocId WITH STOPLIST OFF;
CREATE FULLTEXT INDEX ON tblNode (Search LANGUAGE '+CAST(@languageLCID AS nvarchar)+N') KEY INDEX PK_tblNode_intNodeId WITH STOPLIST OFF;';
EXECUTE sp_executesql @CreateFulltext;
Info

Tento skript skloňuje vyhledávání slov podle výchozího jazyka databáze. Pokud chcete slova skloňovat podle jiného jazyka, nahraďte druhý řádek řádkem, jako je např.:

SET @languageLCID = 1033

Nahraďte číslo 1033 kódem národního prostředí, které chcete použít pro skloňování slov. Pokud chcete později změnit jazyk, vypněte a znovu zapněte FTS.

Vypínání fulltextového vyhledávání

Chcete-li zakázat katalog fulltextového vyhledávání, spusťte následující skript SQL.Musíte být členem skupiny sysadmin, db_owner nebo db_ddladmin.

DROP FULLTEXT INDEX NA tHdTicketu;
DROP FULLTEXT INDEX NA tAct;
DROP FULLTEXT INDEX NA dokumentu;
POKUD EXISTY (SELECT * Z sys. obsahuje svazky t INNER JINÉ syny. ulltext_indexes fi ON t.[object_id] = fi.[object_id] WHERE t. ame= 'tArticle')
DROP FULLTEXT INDEX NA článku;
PŘI EXISTECH (SELIKT * Z sys. ables t INNER JOIN sys.fulltext_indexes fi ON t.[object_id] = fi.[object_id] WHERE t. ame= 'ArticleLoc')
DROP FULLTEXT INDEX NA článku;
PŘI EXISTECH (SELIKOVAT * OD sys. ables t INNER JOIN sys.fulltext_indexes fi ON t.[object_id] = fi.[object_id] WHERE t. ame= 'tHdTicketApproval')
DROP FULLTEXT INDEX ON tHdTicketApproval;
IF EXISTS (SELECT * Z sys. ables t INNER JOIN sys.fulltext_indexes fi ON t.[object_id] = fi.[object_id] WHERE t.name= 'tHdTicketApprovalItem')
DROP FULLTEXT INDEX ON tHdTicketApprovalItem;
IF EXISTS (SELECT * OD sys.tabulek t INNER JOIN sys. ulltext_indexes fi ON t.[object_id] = fi.[object_id] WHERE t. ame= 'HdSectionLoc')
DROP FULLTEXT INDEX ON HdSectionLoc;
IF EXISTS (SELECT * OD sys.tables t INNER JVZDUCHU sys. ulltext_indexes fi ON t.[object_id] = fi.[object_id] WHERE t.name= 'tblNode')
DROP FULLTEXT INDEX ON tblNode;
DROP FULLTEXT CATALOG ftCatalogAlvao;