December 29, 2023 at 2:51 pm
Hello.
I have a couple of DBs that say that Full Text Search is not Enabled on the DB - yet it seems to work?
FTS catalogs were created by upgrades to SW that use them to run Contains queries via the portal - this seems to work fine. Maybe the data is stale or something - not sure about that - but the catalogs have data in.
So, I have some DMV type queries for FTS catalogs collated from around the Internet, that error because FTS is not enabled on the DB.
I can enable this with a simple command so that all looks as it should do - however this immediately triggers a Full Populate and this can take between 2 and 7.5 hours depending on the DB, It also required setting to Simple Mode due to the TLOG activity - and either way has a knock-on effect on Log Shipping replication (high volume and duration or else needs re-establishing (by other party).
Likely I will want to do this (Enable) for my own peace of mind, despite the disruption (FTS being unavailable for the duration of the Full Populate plus dealing with Log Shipping) but am unsure how FTS is working if it says it is not Enabled on a DB.
Any ideas?
TIA
Steve O.
December 29, 2023 at 4:25 pm
This is one of the queries I run :
--USE[
--1) Is FullTextSearchEnabled in SQL Instance
SELECT
CASE FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')
WHEN 1 THEN 'Full-Text installed.'
ELSE 'Full-Text is NOT installed.'
END
;
--2 Is FullTextSearchEnabled in DB
SELECT name, Database_id, is_fulltext_enabled
FROM sys.databases
WHERE database_id = DB_ID()
--3) Is there a FulltextSearch Catalog
select *
FROM sys.fulltext_catalogs
--4) What is being Indexed
SELECT
SCHEMA_NAME(tbl.schema_id) as SchemaName,
tbl.name AS TableName,
FT_ctlg.name AS FullTextCatalogName,
i.name AS UniqueIndexName,
scols.name AS IndexedColumnName
FROM
sys.tables tbl
INNER JOIN
sys.fulltext_indexes FT_idx
ON
tbl.[object_id] = FT_idx.[object_id]
INNER JOIN
sys.fulltext_index_columns FT_idx_cols
ON
FT_idx_cols.[object_id] = tbl.[object_id]
INNER JOIN
sys.columns scols
ON
FT_idx_cols.column_id = scols.column_id
AND FT_idx_cols.[object_id] = scols.[object_id]
INNER JOIN
sys.fulltext_catalogs FT_ctlg
ON
FT_idx.fulltext_catalog_id = FT_ctlg.fulltext_catalog_id
INNER JOIN
sys.indexes i
ON
FT_idx.unique_index_id = i.index_id
AND FT_idx.[object_id] = i.[object_id];
From this snip of the output you can see that it all looks good apart from Step 2 - where the DB is Disabled.
I can change this (I have done to 1 Live system and others in Test) - but it forces a Full Population when I do.
FTS (contains) queries return results.
sp_who2 shows the FTS processes (crawl) but these appear to be system/instance wide (db name is master) and there are other FTS catalogs in other DBs in this instance
Steve O.
January 12, 2024 at 5:21 pm
Guess I am going to change these for consistency and let the catalogs rebuild just for peace of mind that all looks OK.
Viewing 3 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply