Objective: wish to have two object types and subtypes
indexed only. Do not want dm_sysobject indexed, nor dm_document type. So this
process includes full-text indexing for just certain types in the object model.
Since out of
the box dm_sysobject is registered for full-text indexing, all objects under
that type and subtypes will get full-text indexed, including dm_application,
dm_job, job reports, and all their attributes.
However, usually you don’t wish to full-text index everything, just documents
from selected types. This process accomplishes the goal of filtering what is
included in the full-text index.
Procedure
Note: this is my rewritten procedure. Originally the basic process was an EMC/Documentum
support note which was very poorly worded and took me hours to decipher.
Remember to
try this in a sandbox or dev environment first. This process was implemented in
two systems and then successfully put into a final production system.
In this example
we want to register only two types & all their subtypes and attributes:
rtd_document and dm_message_archive. One of these types is a custom type
In order to
re-index only the objects from the two selected types follow these steps:
1. Unregister and
register the super type that you want to register
-
In iapi.exe unregister the current events for the dm_fulltext_index_user for dm_sysobject. You can use Documentum
Administrator or iapi.exe.
Fetch
r_object_id of dm_sysobject.. This is “0319978f80000105” in this example. You could fetch using this
query: select r_object_id from dm_type where name = 'dm_sysobject'
API>
unregister,c,0319978f80000105,dm_save,dm_fulltext_index_user
API>
unregister,c,0319978f80000105,dm_destroy,dm_fulltext_index_user
API>
unregister,c,0319978f80000105,dm_readonlysave,dm_fulltext_index_user
API>
unregister,c,0319978f80000105,dm_checkin,dm_fulltext_index_user
API>
unregister,c,0319978f80000105,dm_move_content,dm_fulltext_index_user
1a. Logon to server
via Remote Desktop and use iapi.exe. Or use local iapi.exe if you have
installed locally.
Connect as
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=T0JKIE5VTEwgMAoxMwp2ZXJzaW9uIElOVCBTIDAKMwpmbGFncyBJTlQgUyAwCjAKc2VxdWVuY2VfbnVtIElOVCBTID
AKMzE3OQpjcmVhdGVfdGltZSBJTlQgUyAwCjEyMjU5OTIzNTgKZXhwaXJlX3RpbWUgSU5UIFMgMAoxMjI1OTkyNjU4CmRvbWFpbi
BTVFJJTkcgUyAwCkEgNyBydGQuZG9tCnVzZXJfbmFtZSBTVFJJTkcgUyAwCkEgMjIgZG1fZnVsbHRleHRfaW5kZXhfdXNlcgpwYXN
zd29yZCBTVFJJTkcgUyAwCkEgNzcgRE1fRU5DUl9URVhUPXdPU0RBNm1pNTgxajdiSmQxalltVWxmdUUvN0RpUEdVSFA3c0Yz
SWhGTXZlcjB3RFJyRVZtQmZiS0h5Um5rYXIKZG9jYmFzZV9uYW1lIFNUUklORyBTIDAKQSA0IGNFQ00KaG9zdF9uYW1lIFNUUklO
RyBTIDAKQSA4IGNDT05URU5UCnNlcnZlcl9uYW1lIFNUUklORyBTIDAKQSA0IGNFQ00Kc2lnbmF0dXJlX2xlbiBJTlQgUyAwCjU2C
nNpZ25hdHVyZSBTVFJJTkcgUyAwCkEgNTYgVnVSSHVqbWlVSytpaFpXa2UzTDVmTTB3WXp0bTBoZTZVV2w1eHJoRmhXUzZYY
UYxeWxScGpRPT0K
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
QgUyAwCjAKc2VxdWVuY2VfbnVtIElOVCBTIDAKMzE3OQpjcmVhdGVfdGltZSBJTlQgUyAwCjEyMjU5OTIzNTgKZXhwaXJlX3RpbWU
gSU5UIFMgMAoxMjI1OTkyNjU4CmRvbWFpbiBTVFJJTkcgUyAwCkEgNyBydGQuZG9tCnVzZXJfbmFtZSBTVFJJTkcgUyAwCkEgMjI
gZG1fZnVsbHRleHRfaW5kZXhfdXNlcgpwYXNzd29yZCBTVFJJTkcgUyAwCkEgNzcgRE1fRU5DUl9URVhUPXdPU0RBNm1pNTgx
ajdiSmQxalltVWxmdUUvN0RpUEdVSFA3c0YzSWhGTXZlcjB3RFJyRVZtQmZiS0h5Um5rYXIKZG9jYmFzZV9uYW1lIFNUUklORyBT
IDAKQSA0IGNFQ00KaG9zdF9uYW1lIFNUUklORyBTIDAKQSA4IGNDT05URU5UCnNlcnZlcl9uYW1lIFNUUklORyBTIDAKQSA0IG
NFQ00Kc2lnbmF0dXJlX2xlbiBJTlQgUyAwCjU2CnNpZ25hdHVyZSBTVFJJTkcgUyAwCkEgNTYgVnVSSHVqbWlVSytpaFpXa2UzTD
VmTTB3WXp0bTBoZTZVV2w1eHJoRmhXUzZYYUYxeWxScGpRPT0K
... Result:
s1
-
Register events for desired types.
Remember- we are registering just two supertypes and all their subtypes and attributes.
Run these steps first for rtd_document
and repeat for dm_message_archive. Only rtd_document is shown in example below.
Fetch
r_object_id for rtd_document…it is 030000fb800001d7.
Fetch
r_object_id for dm_message_archive…it is 030000fb80000169.
API>
register,c, 030000fb800001d7,dm_save,,F
SET>
F
...
Returns: OK
API>
register,c, 030000fb800001d7,dm_destroy,,F
SET>
F
...
Returns: OK
API>
register,c, 030000fb800001d7,dm_readonlysave,,F
SET>
F
...
Returns: OK
API>register,c,
030000fb800001d7,dm_checkin,,F
SET>
F
...
Returns: OK
API>register,c,
030000fb800001d7,dm_move_content,,F
SET>
F
...
Returns: OK
2.
Stop Index Agent. Do one time after registering dm_message_archive &
rtd_document above.
3.
From Fast InStream Admin page http://<index server>:16000. Go to
collections and under "Collection Overview" find the name of the
collection associated to the repository in question.
4. Click on the trash
icon "Delete collection "<name of the collection>".
5.
Wait until the process of deleting the collection completes:
-
First it will delete the index information
-
Second it will delete the fixml information
6.
Using the Index Agent configuration program delete the Index Agent associated
to the repository.
7.
If the dm_ftengine_config and dm_ftindex_agent_config objects are still
present, get the r_object_id and using iapi destory both objects:
API>
retrieve,c,dm_ftengine_config
API>
destroy,c,l
API>
retrieve,c,dm_ftindex_agent_config
API>
destroy,c,l
8.
Run the Index Agent configuration program and reconfigure the Index Agent in
normal mode. In other words make a new index agent.
9.
Create an output file with the r_object_id's of the custom type. If two types
(rtd_document & dm_message_archive) run twice: 1st time run
query for 1st type, add these to ids.txt file. Then run again for 2nd type and
append those to ids.txt file. Do this on Content Server.
idql
-Uusername -Ppassword < dql_ statement_script > ids.txt
idql32 dev -Uuser -Ppassword
-RsteveDQL.txt > c:\dqltest.txt
where
dql_statement_script contains the select statement as follows:
dqltest.txt
contains:
select r_object_id
from rtd_document
go
-
Open the output file and remove the headers and leave only the r_object_id
values. Paste these id's into a file named ids.txt in directory listed below on
cFast.
C:\Documentum\bea9.2\domains\DctmDomain\upload\IndexAgent1\IndexAgent1.war\WEB-INF\classes.
File
formerly called ids.txt is then change to ids.txt.done. This is a good verification by FAST – it indicates
object id’s were processed. The image below shows location of ids.txt after
ids.txt is processed.