I Still Haven’t Found What I’m Looking For…WebCenter Sites 11g and Lucene Search
I Still Haven’t Found What I’m Looking For…WebCenter Sites 11g and Lucene Search
Out-of-the-box Oracle WebCenter Sites utilizes Apache Lucene as its third-party search engine. Lucene is a Java based full-text search engine that is capable of powering applications requiring search. This integration powers the Contributor Interface as well as the Public Site search. Although it's built-in, Lucene requires some setup before it can be truly functional. This allows WCS users to customize the search functionality, allowing for a truly custom fit for your organization. Before your imagination runs wild with the possibilities, we need to break down how Lucene makes sense of the information within WCS.
Walk On – Asset Type vs. Global Search
Lucene searches rely on an index that is driven by Lucene itself, outside the realm of the WebCenter Sites database. These indexes store the table information based on your selection during setup for parsing and retrieval. What is interesting though, is that Lucene’s search is divided into two different types: Asset-Type search and the Global Search. While the search result may look the same from the end-user perspective, under the hood there are different methodologies for how the results are generated.
With Or Without You – The Asset Type Search
The asset type search allows users to search for specific asset types, per selection, by the attributes of their choosing. Configured in the Admin Interface, the asset-type search indexes each attribute value in its own individual cell. System and user defined variables are indexed on a per attribute basis, which in turn would allow users to search for a particular string in a specific attribute. Once the user has configured the search attributes for indexing, these results can be displayed via custom view configuration files and managed within WCS.
Where the Streets Have No Name – The Global Search
The global search function of WCS operates a little bit differently in that instead of all attributes being defined on an individual cell basis, the user-defined attributes get combined into a string and placed in a single table cell. System-defined attributes are still indexed on a per cell basis, but this type of search restricts searching user attributes to being done all at once. For example, you could search for a “Name”, but you couldn’t limit looking for that string in one user-specific attribute.
Race Against Time – Avoiding Performance Glitches
If you do plan to use Lucene on your delivery environment, you should know that there is currently a known issue affecting indexing performance. If your 12c system is using the "nio" file system (i.e. shared files in the database), Lucene indexing can be an order of magnitude slower than using traditional shared disks. If you aren't publishing many assets, this won't affect you much, but if you are publishing more than a dozen assets at a time, you'll need to switch to manual indexing and cache management, or revert from nio to the shared disk (there's a utility for that).
Understanding the difference between these two methodologies is key when customizing the Lucene search engine. For developers, search is highly customizable, but requires intentional thought as to how and what is being searched in the WCS interface. The right search customizations can save organizations time and improve workflow, especially for sites with large amounts of assets.
Function1’s WCS team optimizes search capability, while making sure contributors have access to the assets they are looking for. Leave the quest of endless searching to Mr. Bono and U2 and customize Lucene today!
- Log in to post comments