June 27, 2007 at 12:50 pm
Whenever we have a database created we enable full-text database feature of sql server. We are under the impression that indexing occurs automatically as data, text fields, memo fields, etc. are populated in client application when full text feature is enabled.
How often and how long after new data is loaded does full-text index run? What triggers the full-text index to populate automatically?
There seem to be a full-text indexing scheduler feature for each index in each case. Does a schedule need to be set in order for new sql data to be indexed or does it happen automatically?
Thanks again,
Augus
June 30, 2007 at 11:10 am
I thought I would post this info here as I found the answer for my question from Microsoft.
Question: How does the mssearch service crawl through the databases? For example, if I've got 50 databases, each with two full text indexes, is it going to walk through those one at a time and complete all the pending 'changes' for each? Or does is go through and do a maximum number of changes per pass through each index? Or something else entirely?
--Answer: If you are using change tracking with background processing, then there is no crawl as such. Notifications are sent to search as they happen. Each is sent over individually. If you are using other population methods, the process is as follows (this comes from BOL):
--Each population request is sent to the indexing service within the Microsoft Search service:
The indexing service passes the appropriate start seed value to the SQL Server Handler. The start seed value contains information such as the table and index involved in the population, and the timestamp value (if the table has a timestamp column) associated with the last full or incremental population performed for the index.
--The SQL Server Handler is a driver containing logic to extract text data from the SQL Server columns involved in a full-text index. The Handler retrieves the data from SQL Server and passes it back to the index service. For a full population, the SQL Server Handler extracts all the rows in the table. For an incremental population, the SQL Server Handler only extracts information from rows whose current timestamp values are higher than the timestamp associated with the last population, which is stored in the start seed.
--The indexing service then passes an index identifier and the strings to be indexed to the index engine. The index engine eliminates noise words such as a, and, or the. It also determines the word boundaries and builds a full-text index covering the words passed down from the indexing service. This linguistic analysis differs depending on the language in which the text is written. SQL Server 2000 supports linguistic analysis for several languages; the language is specified using sp_fulltext_column. The full-text index is stored in the full-text catalog file.
--At the end of the population, the indexing service calculates a new start seed value that records the point at which a subsequent incremental population should start.
Viewing 2 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply