SharePoint Portal Server brings along document filters mostly for office
documents. But you can also save and full text search your mindmaps in SharePoint.
If you are using Mindmanager X5 or the current version 6 then you are
lucky and just have to look at ifiltershop.com. They've got a solution
for indexing Mindmanager documents.
Sadly for Mindmanager 2002 there is
no such IFilter available. But you can easily write your own!
Mindmanager has an OLE automation interface where you can traverse the
mindmap tree structure and extract all label texts from it. Then you
have to tell the indexing service the texts. For that purpose
Microsoft has defined the IFilter-COM-Interface, which you have to
implement. The coding is pretty straight forward:
// Init-Call from index service
HRESULT IFilter::Init(ULONG grfFlags, ULONG cAttributes, const FULLPROPSPEC* aAttributes, ULONG* pFlags)
pMindManager->Visible = VARIANT_FALSE; // hide GUI
ImjDocumentPtr pMindManagerDoc = pMindManager->Documents->Add(_bstr_t("Mindmap.mmp")); // open mindmap
// remember texts for every ImjBranchPtr pBranch
// index service calls this method and GetChunk() for every text until FILTER_S_LAST_TEXT is returned
HRESULT IFilter::GetText(ULONG* pcwcBuffer, WCHAR* awcBuffer)
WCHAR* pwcNextText = PopText(); // get next text for indexer from memory
if(pwcNextText != NULL)
*pcwcBuffer = wcslen(pwcNextText);
wcsncpy(awcBuffer, pwcNextText, *pcwcBuffer);
return FILTER_S_LAST_TEXT; // no more texts available
There is only one problem with this approach - you have to install the
Mindmanager product on your indexing server. Argh, this brings in most
of the problems you have, if you run any Office product on a server.
But the guys at Mindjet promised me, that it's ok and until now no
strange effects happend on the server where i run it (as opposed to a
braindead instable excel server i was replacing last year). So maybe
admins won't rip your heart out ;)