Performing a search for an email using the Search or Advanced search doesn't return the expected results. Searching on date range and email address may still be operational. .
Under some circumstances the Full text Index can become corrupt, this can result in the following error being displayed:
Exception Source: mscorlib
Exception Type: System.ArgumentOutOfRangeException
Exception Message: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Exception Target Site: get_Item
Could not find file 'D:\Quest Software\ArchiveManager\Index\Message\_9p7kw.fdt'.
The constructor to deserialize an object of type 'Lucene.Net.Index.CorruptIndexException' was not found.
Under some circumstances the Full text Index can become corrupt, this can happen due to system hard booting during indexing, or problems connecting to the SQL server.
The Full text Index is corrupt and it will need to be either repaired or a reindex / rebuild performed. Use Resolution 1 to repair the index. Use Resolution 2 to rebuild the index.
Index repairs are faster than rebuilds but the repairs are lossy, the repair function discards corruption in the index resulting in a healthy but potentially inconsistent Full Text Index.
1. Attempt to repair the index as per the following solution: SOL60971 - How to repair a corrupted Archive Manager Full Text Index?
Perform the following steps to Reindex / rebuild the Archive Manager message and attachment index:
1. Stop the ESM Service and disable the Journaling Data Loader in the website if you are journaling.
2. Let the Data Load Service clear out the export directory.
3. Stop the Data Load and All other Archive Manager Services.
4. Go into SQL and execute a query against the Archive Manager Database as follows.
a. DELETE FROM Messagetoindex
b. DELETE FROM Attachmenttoindex
5. Go to the Index folder on the AM server and locate the Attachment and Message folders. Move them to another location.
6. Open up a command prompt running as the same user that runs the Full Text Index service - Usually this is the ArchiveMgr_Service account. "runas /u:domainname\username cmd" is the command you will need to execute. Type in the password for the user and a new CMD window will open.
7. CD to the program files\quest software\archivemanager directory and run the Archive Full Text Index Service.exe with the -reindex switch at the end. "Archive Full Text Index Service.exe" -reindex
For release of Archive Manager 4.1.2 and earlier, run the Archive Full Text Index Service.exe with the -console -reindex switch at the end. "Archive Full Text Index Service.exe" -console -reindex
8. Wait for this to complete, and then start all the AM services. Your messages and attachments will now be reindexed. You can monitor this by doing a Select count(*) from messagetoindex or Select count(*) from attachmenttoindex in SQL.
Note: Reindexing may take several days to complete depending on the amount of messages/attachments you have in the archive, and until that time the results when performing a search may not be complete.
It is also possible to reindex messages of a specific date range using the following SQL queries. This can be used in situations where Full Text Search results are not being returned between a spefic set of dates:
INSERT INTO messagetoindex SELECT MessageID FROM Message WHERE Message.DateProcessed > '24-JUNE-09' AND Message.DateProcessed < '13-AUGUST-09'
Replace '24-JUNE-09' with the date in where oldest results are returned, and '13-AUGUST-09' with the first date that returns results in the recent results.
If results are not being returned previous to a specific date, all messges older than this date can be submitted for reindexing using the following script:
INSERT INTO messagetoindex SELECT MessageID FROM Message WHERE Message.DateProcessed < '24-JANUARY-10'
This query will reindex all attachments between 31st July 2010 and 1st August 2010, change the dates as required:
INSERT INTO attachmenttoindex SELECT attachmentfileid FROM attachment WHERE messageid IN (SELECT messageid FROM message WHERE Message.DateProcessed > '31-JULY-2010' AND Message.DateProcessed < '1-AUGUST-2010')
This query will reindex all messages in a Users mailbox, change the mailboxid as required:
INSERT INTO messagetoindex SELECT messageid FROM mailboxmessage WHERE mailboxid = 1
If you do not know the users mailboxid, you can use the following query to find this information:
SELECT * from mailbox where name like 'John Doe%'