If you read my first post on Oracle Content & Experience Cloud (Oracle CEC), you would have come away impressed with the capabilities and features of the product. Features for organizations to manage and share high-value content that could be used to build content-rich, omni-channel websites. However, as I’ve continued to work with Oracle CEC over the last four months, some features need improvement. Most notably in my opinion, is search. I’ll explain the reasons why in this blog post, and offer up details on how you can develop a custom component to enable a better search experience.
The Problem: Search Options are Limited for Sites and Provide Little Customization
Oracle CEC provides businesses with strong document storage, security and sharing capabilities through the managed “Content” section of the interface. However, there is often a need for content to be searched, viewed and accessed through a managed site. The out-of-the-box options to achieve this are scarce, and moreover may only fit a general use case, which is not likely to suit the needs of your business.
Luckily, Oracle allows developers to integrate custom components to Oracle CEC, and continually improves a powerful set of REST APIs which can be used to search folders and documents. Combining the two will result in an integrated search solution for the site which can be tailor-made to fit the functional and visual requirements of the business. In this post I will share my experience developing a custom search component for CEC, and provide a glimpse into future enhancements and capabilities.
The Solution: Integrate a Custom Search Interface
I began by integrating a global search bar into the header of the layout for the site. This gives users the ability to search for content on the fly regardless of where they are in the site. Once a user enters a search term, they can press enter, or click the “Search” button to initiate the search. The user and search term are then redirected to a search results page.
The search results page is like any other page of the site, except it has been hidden from display in the header navigation. I have placed my “Search-Results-Page” custom component within the page, which performs all the actions and rendering for the search.
The search term is picked up and decoded, then passed into Oracle’s API for full-text document searching. Using full-text search strengthens the search by looking for matches across multiple file and folder properties, such as:
- The name
- The text content of the file
- The file extension
- The owner’s name
- The latest modified user’s name
- The folder description/tags
The matching items are then returned to the component, where it applies pagination to the results, and injects that data into a template to build the results page. The template was modularly designed so that it can be easily updated or replaced to structure the response in a format that will match a specific look and feel without compromising the core search functionality behind the component.
Using several other API endpoints available, I added some additional features to the results page, such as the ability to generate thumbnail previews for the results as they are displayed to the page. I apply a thumbnail next to the info of each document returned, and display a folder icon next to the folders.
Hovering your cursor over the thumbnail will indicate the image can be enlarged. Clicking will expand the thumbnail and overlay it in the center of the page for the user to quickly inspect and verify whether it is the document they have been looking for:
For all documents returned in the results I have included actions to “View” and “Download”. Clicking the “View” icon will utilize another API endpoint to generate and open an HTML5 rendition of the full document.
Among other document attributes returned from the search are the content types (folder or file). Some users may want to view only one or the other, which can be made possible through a filter facet menu surfaced alongside the results. Logic can be included to handle a number of different sorting and filtering tasks.
Beyond a customizable display, there are also custom settings that can allow a site administrator to make near-immediate modifications to the search results component to adjust behaviors or adapt its use for multiple sites used within the organization. For example, the Results Limit and Results Per Page value can be adjusted for more results included on searches, and how many items are included in each page, respectively. Additionally, I’ve included a “Root Search Folder” selection, which allows the site admin to point searches at a specific folder (and all of its contents) as the target of the search for that site. This setting can be applied per instance, so any number of sites can target different folders of content to search upon, providing contextualization of searchable content on the basis of which site the search is being performed against.
The below settings dictate a total of at most 80 items be returned, at a max of 10 pages (8 results per page), and the search will target folders and documents that live within the “Search” folder.
The Vision: Faceted, Robust, and Dynamic Searching… Anywhere
Additional Filtering Capabilities
Filtering content by its type is a small example within a very large list of options which can provide users with the ability to reach more granular results. Adding additional attributes to filter on, and allowing site administrators to decide which filters should be available (or applied by default) can give businesses control on the relevancy of search results.
Targeting More Oracle Cloud Content
In addition to documents and folders, Oracle is continuing to improve on options to search across structured content, digital assets, content collections, and conversations. Additional functionality can be developed to include or separate searches across these various formats on the system.
Targeting Separate Existing Datastores
Improving the UX Out of the Box
The layout and structure of results is a crucial aspect of user experience. Several default templates can be created and bundled with the component to give business owners the opportunity to choose the interface which would best fit their vision for the site, rather than being limited to a single UI or carving out time to design and create a custom interface altogether.
In closing, the steps I outlined above to create a custom search component should illustrate another great feature of Oracle CEC. That feature is the customizable nature of the platform, giving you the ability to extend upon its inherent capabilities to provide an experience molded specifically for your organization. As a company, Fishbowl Solutions recognizes the value of search within the overall user experience, and offers Mindbreeze Inspire search solutions. We also understand the important role search plays within content management, and how effective search solutions can lead to more adoption and use of products like Oracle CEC.