Isolating Search Results in DFC
Hi Experts,
My Environment:
Documentum 6.5 sp1
I am having an application which will interact to Documentum using dfs.
I am using IQueryService to retrieve result from Documentum.
My requirement:
I have 5000 records in an object type. From Application if I do a search without any search criteria, I want to get the all records isolated like following
1 to 1000 should display first.
Clicking next button to display 1001 to 2000
Again clicking next to display 2001 to 3000
Same like 3001 to 4000 and 4001 to 5000
Is it possible to do?
Please help me on this
--Arun
Best Answer
-
If you are executing simple DQL then IQueryService is the API to use.
If you want to query across multiple repositories and/or external sources then use iSearchService.
so for your requirements use IQueryService
The Search Service is, by default, limited to 350 results, one example here - https://community.emc.com/thread/108696
For the algorithm you can optimise it by returning, say 100 records, and then perhaps having a background thread pulling in additional records either just getting all the rest of the records in the background or get the records when the reach page 10. Returning a smaller number of records will be quicker (less to transfer) and it will allow the cached query at the server side more time to stay around thus providing a speed increase
0
Answers
-
yes. look at the QueryExecution parameter and the starting index and max # or results per call. be aware though that DFS has a hard coded 'max per call' built into a properties file in the deployed ear/war so you may need to do multiple requests if you really want 1000 records per request
0 -
Hi Andy,
Thanks. I have used QueryExecution parameter as you suggested
For my requirement which service I have to use
1. ISearchService
While using ISearchService for QueryResult I am getting only 350 records
or
2.IQueryService
While using IQueryService for QueryResult I am getting the records as I given in parameter of QueryExecution.
Why ISearchService is just returning 350 records even though I have changed the dfs-runtime properties max querry return as 5000.
Which service I should use for my production environment as there will be million of records and i am going to fetch 1000 records per request.
--Arun
0 -
So you have modified dfs-runtime.properties and set dfs.query_cache_policy.query_max_result to 5000? The 350 results is an odd number to get back though, have you tried running the query via repoint or another tools to see how many records you get back for the query and the user you are using.
Normally you can get the results by using a loop, and for a SOAP service this probably works better anyhow, request a reasonable amount and then you can loop through increasing the start record and number to retrieve.
Can a user understand and work with 1000 records presented to them anyhow? Would a smaller number make be better?, or a more targetted query?
0 -
Hi Andy,
So you have modified dfs-runtime.properties and set dfs.query_cache_policy.query_max_result to 5000?
Yes I have modified the dfs-runtime.properties.
The 350 results is an odd number to get back though, have you tried running the query via repoint or another tools to see how many records you get back for the query and the user you are using.
Yes I have tried runnuing query from repoint and samsun tools. I am getting the full records no issues on that. But I wonder on getting 350 records alone when using ISearchService. The same kind of issues I found here in the documentum discussions for some users also but couldn't find any solutions.
https://community.emc.com/message/434159#434159
Normally you can get the results by using a loop, and for a SOAP service this probably works better anyhow, request a reasonable amount and then you can loop through increasing the start record and number to retrieve.
Will follow the above, to do so which Interface will be more efficient for my requirement, ISearchService or IQueryService ?
Can a user understand and work with 1000 records presented to them anyhow? Would a smaller number make be better?, or a more targetted query?
Users will have a search page and if they do a search without any criteria, we have to fetch all the records from documentum. But users will see 10 records per page.So 100 pages they can navigate and can see all the 1000 records. In the 100th page If users click next button.we can call the Service and query by providing 1000 as the starting index and maxresult as 1000. Hope will get the next 1000 records properly. Like this users can navigate to all the pages till the last record.
Please provide suggestion for the above.
Thanks
--Arun
0 -
If you are executing simple DQL then IQueryService is the API to use.
If you want to query across multiple repositories and/or external sources then use iSearchService.
so for your requirements use IQueryService
The Search Service is, by default, limited to 350 results, one example here - https://community.emc.com/thread/108696
For the algorithm you can optimise it by returning, say 100 records, and then perhaps having a background thread pulling in additional records either just getting all the rest of the records in the background or get the records when the reach page 10. Returning a smaller number of records will be quicker (less to transfer) and it will allow the cached query at the server side more time to stay around thus providing a speed increase
0 -
Thank You very much Andy.
QueryExecution(long startingIndex, int maxResultCount, int maxResultPerSource)
In the parameters above I am not clear about maxResultPerSource. If I am passing it as 0 or 100 I cant able to find the difference.
Can your please explain about it.
--Arun
0 -
As this is the search service it can search across more than one source, such as many repositories, external web sites, internals web sites, databases etc.
If you are only querying against a single source then it may well be ignored as max result count would be more appropriate.
Have never used this to search multiple sources so it probably needs some further research.
0
Categories
- All Categories
- 123 Developer Announcements
- 54 Articles
- 153 General Questions
- 149 Thrust Services
- 57 Developer Hackathon
- 37 Thrust Studio
- 20.6K Analytics
- 4.2K AppWorks
- 9K Extended ECM
- 918 Core Messaging
- 84 Digital Asset Management
- 9.4K Documentum
- 33 eDOCS
- 190 Exstream
- 39.8K TeamSite
- 1.7K Web Experience Management
- 10 XM Fax
- Follow Categories