Register Custom Types for Documentum FAST Indexing
http://www.revasolutions.com/ecm-blog/?p=192
Register Custom Types for Documentum FAST Indexing
January 12th, 2010 by Zainab Mantri
By default, Index Server indexes all dm_sysobject & it’s subtypes. All objects under that type and it’s subtypes will get full-text indexed, including dm_application, dm_job, job reports and all their attributes. If you want to limit your indexing to dm_document or only some of your custom types (only documents) you can follow the below mentioned steps.
For Documentum 6.5 & up it is a simple process. After you configure the Index Server & Index Agent do not start the Index Agent. Go to DA->Types->dm_sysobject->Properties and uncheck the check box for register for indexing. Go to your custom type and check the check box for register for indexing and start the Index Agent. It will index only those and it’s sub types documents.
Verify which types have been registered for indexing by using the following query:
- IDQL>select name from dm_type where r_object_id in (select distinct registered_id from dmi_registry where user_name like ‘%fulltext%’)
If you already have documents indexed you will need to delete the collection and index the documents again. Please look at the section below to follow the steps.
For Documentum 5.3 & up you have to go through the following steps.
There are 2 scenarios:
Documents are already indexed and you want to rebuild your index with only custom type documents.
If the documents are already indexed and there is a requirement to index only the custom types then we need to rebuild the indexes as follows:
- Unregister and register the super type that you want to index.
In iapi32 unregister the current events for the dm_fulltext_index_user for dm_sysobject.
idql32> select r_object_id from dm_type where name = ‘dm_sysobject’ – Get the object_id of the dm_sysobject
API> unregister,c,0319978f8000xxxxx,dm_save,dm_fulltext_index_user
API> unregister,c,0319978f8000xxxxx,dm_destroy,dm_fulltext_index_user
API> unregister,c,0319978f800xxxxx,dm_readonlysave,dm_fulltext_index_user
API> unregister,c,0319978f800xxxxx,dm_checkin,dm_fulltext_index_user
API> unregister,c,0319978f800xxxxx,dm_move_content,dm_fulltext_index_user
- Get a login ticket for dm_fulltext_index user
API> getlogin,c,dm_fulltext_index_user – Returns a dm_ticket with many characters as shown below. This is an example ticket only.
DM_TICKET=T0JKIE5VTEwgMAoxMwp2ZXJzaW9uIElOVCBTIDAKMwpmbGFncyBJTlQgUyAwCjAKc2VxdWVuY2VfbnVtIElOVCBTIDAKMzE3OQpjcmVhdGVfdGltZSBJTlQgUyAwCjEyMjU5OTIzNTgKZXhwaXJlX3RpbWUgSU5UIFMgMAoxMjI1OTkyNjU4CmRvbWFpbi
Copy it into a notepad and remove all the extra line breaks.
- Using the login ticket connect as dm_fulltext_index_user. Paste the login ticket as shown below. Note that USER below in blue is a superuser, typically dm_admin or similar.
API> connect,<USER>,dm_fulltext_index_user,DM_TICKET=T0JKIE5VTEwgMAoxMwp2ZXJzaW9uIElOVCBTIDAKMwpmbGFncyBJTl
… Result:
s1
- Register events for desired types.
idql32> select r_object_id from dm_type where name = ‘<custom type>’ – Get the object_id of the custom type which you want to register.
API> register,c, 030000fb80000xxx,dm_save,,F
SET> F
…
Returns: OK
API> register,c, 030000fb80000xxx,dm_destroy,,F
SET> F
…
Returns: OK
API> register,c, 030000fb80000xxx,dm_readonlysave,,F
SET> F
…
Returns: OK
API>register,c, 030000fb80000xxx,dm_checkin,,F
SET> F
…
Returns: OK
API>register,c, 030000fb80000xxx,dm_move_content,,F
SET> F
…
Returns: OK
- Stop Index Agent by either going to Windows Services or from the Index Agent Admin Page
- Click on the Collection Overview tab on the Index Server Admin Page. Find the name of the collection associated to the repository in question.
- Click on the trash icon “Delete Collection“.
- It will delete the index & the fixml information. Wait till it deletes all the indexes completely.
- Use the Index Agent Configuration Program delete the Index Agent associated with the repository.
- Check if the dm_ftindex_agent_config object is still in the repository. Delete it.
API> retrieve,c,dm_ftindex_agent_config
API> destroy,c,l
- Run the Index Agent Configuration Program to create a new Index Agent in the Normal Mode.
- Go to the Content Server and create a text file under C:\ called input.txt. Insert the following statement in it.
select r_object_id from <custom type> (all)
go
- Open a command prompt. Type C:\>idql32 <repositoryname> -u<username> -p<password> -rinput.txt > ids.txt. It will create a file under C:\ with all the object id’s of all the documents of your custom types & sub types including old versions.
- Remove the headers and footers from the ids.txt keeping only the object ids.
- Copy this file to \\Documentum\jboss4.2.0\server\DctmServer_IndexAgent1\deploy\IndexAgent1.war\WEB-INF\classes.
- Start the Index Agent. It will pick this file and after it has finished indexing you will see the file has a .done extension.
Fresh Index Server Install and want to index only custom types.
In this you need to unregister and register the custom type before configuring your index agent.