Sneak peek at the new documentation search

At Global Summit back in April, in his keynote speech, John Paladino mentioned that improvements to our documentation search were being made.  You might have wondered, since things seemed to go quiet, whether anything was really happening.  Well, we had an internal demo of some of the upcoming features recently, and the new capabilities look really cool – searching documentation has been frustrating for InterSystems staff too!  So, I thought it might be good to pass on a few details to give a taste of what is coming.  Of course, InterSystems will be putting together much better information about all the new features and how to use them, but this post is intended to give you some idea of the work that has been done and let you know that there is hope for all of us!

One of the biggest issues in the existing search is that it has not been good at understanding the context or form of the search term.  Just as an example, if I currently run a search for ‘setting’, I get back terms related to: MDX sets in DeepSee, the SET operation, setting SQL parameters, result sets and many other variations:

In the new search, additional options have been added to narrow and refine the results that get returned, so this is how it will now look:

First of all, if your search term contains multiple words, you can choose to match on all or any of them.  More importantly, you can also include a ‘search type’, where you can specify if you want to run a free-text search or match your search term exactly, whether or not with case-sensitivity:

The exact match options are really useful when your search term contains non-alphanumeric characters, like % or ^, which were previously ignored.

One of my biggest bugbears has been that searching has always returned results across all products, when I’ve been interested in one product in particular.  You are now able to choose a specific product to run your search against – hurray!  We also sort the results to put documents first that are more general, used by more customers or are more recent, or some combination of these factors.  But, if you know there is a specific book that you wish to search, you can select one from a dropdown list:

Or, if you know your search term appears across multiple books, you can still narrow results to a particular topic area by selecting a ‘tag’, such as ODBC, Portal, SOAP and so on, which really helps apply context to your search and fine-tune the information returned.

The search results now get presented like this, with highlighting of the term searched for, and a link to take you directly to that spot in the documentation:

The new search functionality is introduced in 2017.1, and the Field Test should be available mid-October (precluding any last minute snags), so really not too much longer to wait.

Even after that release, more improvements are planned and work will be ongoing for some time, but I am sure you will agree that this is a big step in the right direction.

Comments

[This is slightly overdue, but very welcomed change in any case!]

Did I interpret these correctly, and search improvements were mostly implemented using iFind capabilities?

No, we did not use iFind. Primarily we exploited what we already know.

The filtering options (product, book, and tag) take advantage of our pre-existing knowledge of our content. (There is no reason for us to try to deduce what we already know.)

Likewise, the overall ranking takes advantage of our pre-existing knowledge of which books are central and which are more peripheral. (All other things being equal, you ought to see search results from Using Cache Objects before you see results from the MSM to Cache Conversion Guide, right?)

The other key change, in my view, is that we added search options that look at every single character of your search text. The previous search ignored non-alphanumeric characters other than & and %, thus making it difficult or impossible to search for many technical terms (like .obj for example!).

But iFind could be helpful at some point, as an option. I suspect strongly that it would be a useful option for some kinds of searches but not for others. iFind provides the ability to find related items. We examined about 3000 past searches at docs.intersystems.com and found that the majority of them were searches for specific technical items (wd buffer size, $listbuild, %openid, <STORE>, and so on), many of which already have very large numbers of results. It's not yet clear whether it would help to display items "related" to those items.

 

will it be possible to "turn OFF" certain search areas ?

I don't have Ensemble installed, lets do away with those instantly - it must be easy to have a global switch "search only licenced options" and then automatically hide (totally - not even given the choices) anything that's not in your licence configuration

Hi Kevin,

We're certainly considering things like that. We have to work out how to apply & remember such filtering not only to search but also to browsing. We can't make any promises about dates, though, especially because we are also working on how to search across other repositories of information (such as the class reference and samples).

For now, if you have Cache (but not Ensemble) installed, you won't see the Ensemble doc. anyway, so hopefully that takes care of the concern you mention here. I hope this helps you.