1 final IdcClientManager idcManager = new IdcClientManager();
2 final IdcClient idcClient = idcManager.createClient("idc://127.0.0.1:4444");
3 final IdcContext idcContext = new IdcContext("sysadmin");
4
5 final DataBinder binder = idcClient.createBinder();
6
7 // populate the binder with the parameters
8 binder.putLocal ("IdcService", "GET_SEARCH_RESULTS");
9 binder.putLocal ("QueryText", "dDocFullText <substring> <qsch>"+yourSearchWordOrWords+"</qsch>");
10 binder.putLocal ("SearchEngineName", "databasefulltext");
11 binder.putLocal ("ResultCount", "20");
12
13 // execute the request
14 ServiceResponse response = idcClient.sendRequest (idcContext, binder);
15
16 // get the binder
17 DataBinder serverBinder = response.getResponseAsBinder ();
18 DataResultSet resultSet = serverBinder.getResultSet ("SearchResults");
19
20 // loop over the results
21 for (DataObject dataObject : resultSet.getRows ()) {
22 System.out.println ("Title is: " + dataObject.get ("dDocTitle"));
23 System.out.println ("Author is: " + dataObject.get ("dDocAuthor"));
24
Nothing special so far except the line which declares the full text search. To be able to proceed with the full text search you have to use dDocFullText attribute inside the search query. The tag <substring> is the same as 'like'. Also you have to put your searching string or words in quotes which could be a problem sometime, so I used the tag <qsch>. Using this tag you can have quotes now inside your search string without to break the code and get parsing exceptions.
To be able to test the example, you do have to enable full text search inside UCM. To do this follow the steps for example from this blog here and then re-index the documents in UCM.
There is also one very nice article about how to define UCM queries if you want to replace the full text search with something more specific, you can read this article from Kyle's Blog here.
No comments:
Post a Comment