IBM Support

How to build a plug-in with custom search for IBM Content Navigator

Technical Blog Post


How to build a plug-in with custom search for IBM Content Navigator


Jie Zhang (Calvin) is a developer for IBM Content Navigator in China Development Lab. He joined IBM in 2005 and has more than 10 years of software development experience. Calvin has over 6 years experience on IBM Content Manager and FileNet products including quality assurance and development. Calvin holds a Master Degree in Computer Science from Tsinghua University.


I just finished 2 chapters for the new IBM Redbooks publication, Customizing and Extending IBM Content Navigator. Both chapters talk about how to build a plug-in with custom search.


IBM Content Navigator (ICN) currently already provides the SearchTemplate model API for developers to build their own search. If you are really interested in how to make a plug-in for ICN, I guess you may try the sample plug-in provided by ICN. In ICN 2.0.2, the sample plug-in sample feature contains a custom search sample. It does not use the SearchTemplate, but uses query string directly.


Why ICN contains that kind of sample? There are at least 2 reasons:

  1. For developers working with IBM Content Manager or IBM FileNet Content Manager, the query string is the most simple and direct way to get everything they want. The query string provides everything that the repository provides.
  2. With this mode, developers can also build their custom search against other repositories, databases, or even file systems (It’s another kind of repository anyway).


To build a custom search for ICN, we need to handle 2 things:

  1. Build a service to do the search. ICN sample plug-in gives a sample for IBM Content Manager and IBM FileNet Content Manager.
  2. Show the result set. The ContentList widget provided by ICN is based on gridx and very powerful for this purpose. ICN also provides several modules to be configured and customized.


So how to build it exactly?


There are some basic things like Java, DOJO, Javascript, HTML, CSS, and so on that you need to know. Then you can look into the ICN sample plug-in code and ICN API. You may also need to learn API usages of some content management repository. If you are a starter, you may need a manual like the kind for making static models. Then developers can follow it step by step to build something.


Speaking of making models, it is a little bit like making ICN plug-in with ICN “models”. You can make something with many pieces. You can also customize the pieces and decide how it should be looked like. A difference is that one is using keyboard and mouse, the other is using hands and brushes. And my favorite brand is Tamiya.


Wait, this topic is about IT? OK, let’s get back to custom search.


With custom search, we can build a lot of custom functions. For example, browse documents with a custom tree instead of the folder tree provided by ICN. Based on my experience, there are generally two kinds of the content management repository users. One is browse users and the other is search users. For browse users, the well-designed folder structure is the important thing. But for search users, how to design and manage the searches is the most important thing. Then there is a way to combine these two methods together. If we build a custom tree by developers or end users (if the configuration can be saved for each user), and manage the fixed search criteria as the tree nodes, then users can browse documents with a custom tree using custom search. For example, if users want to browse documents by document classes, then developers can build a tree with document classes as nodes. In this scenario, when users click on the node of the tree, there will be search triggered to search documents belong to this class.


OK. I still have not talk about how to build a plug-in for a custom search yet. As I mentioned earlier, I wrote two chapters on that in the IBM Content Navigator Redbooks publication. Check it out.


Additional references

For IBM Content Navigator related blog posts, see:

For IBM Content Navigator Redbooks publication, see:


[{"Business Unit":{"code":"BU025","label":"IBM Cloud and Cognitive Software"}, "Product":{"code":"SSCTJ4","label":"Case Manager"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":""}]