Why does my full-text search index goes empty for no reason
-
Monday, February 20, 2012 11:33 PM
Hello All
I am using SQL Server full text search with SQL 2008. The database we use is mostly read-only. It is updated by an external process on a weekly basis. The database has 4 tables on which full text index has been defined. I am only using the CONTAINS clause in my SQL to utilize the full text search, Nothing fancy.
The external process mentioned above, truncates the tables of the database and imports data to them from CSV files. After the external process completes its task, I am rebuilding the search index. This seems to work fine, for after a few minutes of the external process completion, I am able to get search results correctly. However the full text index seems to get empty for some reason after a few hours/days (I have not been able to find any pattern to when it happens). When this happens, I sometimes get either no search results, or partial results. If I manually rebuild the index from SQL Server Management tool, it works fine after that. Again the tables that have the index defined really do not have any data change, but I still have setup a sql server task to rebuild the search index both on the catalog as well as the individual tables. But this has not helped much
A few things I would like to understand:
- What is causing the index to be empty (or partially filled)? And how to fix it?
- Is there any way to monitor the status of the index to know how much has been rebuild?
- The sql server jobs mentioned above : where can I see the history for them?
Please let me know if any other information is needed to help me solve this issue. It has been driving me nuts
Thanks in advance
Swanand Mokashi
Malaika Consultants LLC
http://www.malaikaconsultants.com
- Changed Type KJian_ Tuesday, February 28, 2012 1:16 AM
All Replies
-
Friday, February 24, 2012 7:59 PM
It seems very unlikely that your full text index is being emptied without a command being issued that causes this. I would suggest using SQL Profile to create a SQL Trace script and run that script for a while with logging to a file (less load on the server) or logging to a table (if the load will not hurt you).
Trace the: ALTER OBJECT, CREATE OBJECT, DELETE OBJECT events filtered to the database where your full text indexes exists. You should see the effects of you scheduled reload jobs here. Look for events that are affecting these objects between the scheduled reload.
If there is another process or action causing the full text index to empty, you will have the time of the event and some information to help you track down the cause.
FWIW,
RLF- Marked As Answer by KJian_ Tuesday, February 28, 2012 1:16 AM

