Performance and ease of use in a search interface is often one of the highest concerns clients have when deploying Alfresco. Back in April 2016, we presented how to Do More with Your Alfresco Deployment with a configurable search interface. For this post in our 2018 Share and OpenContent Management Suite comparison series, we will be comparing search features in both interfaces. In both cases, we’ll only consider features and functionality that can be configured in the respective interfaces OOTB and with no customized code.
Search Criteria – Share
When looking at search functionality within Share, the interface to execute a search hasn’t changed since our review in 2016. Share utilizes a Quick Search in the header bar at the top of the screen to allow users to quickly run a search:
Concerns with this type of search stem from what we have called the “Google” search interface. While Google works great for a consumer searching the web, it isn’t very practical for most ECM use cases. While the blog linked here was written with Documentum’s Webtop user interface as the example, Share’s quick search in the header bar suffers from the exact same problems:
- Performance – This interface can be slow, especially in large repositories since it searches all documents across the repository including metadata as well as full text.
- Search is too broad – While performance may be adequate in small to medium repositories, the search results generated can still be too broad resulting in too many documents returned.
Share also has a “suggestion” feature that will show a quick small number of results while typing in the textbox:
While type ahead might seem like a very useful feature, often clients ask us to turn it off due to excessive server CPU spikes during document indexing. Per Alfresco’s documentation, the Solr Suggester can cause “CPU and IO load issues.”
The Advanced Search interface can be accessed by clicking the magnifying glass icon within the quick search textbox. Again, the interface hasn’t changed since April 2016:
- Specific Types and Metadata – It is not immediately apparent how to:
- Search against a certain document type. The default Advanced Search allows you to search against either Content or Folders, but there’s no way to search for an Invoice vs. a Purchase Order.
- Search on a certain attribute. The interface does not allow for a user to search for Invoices due in the next 30 days, or Procedure documents that have recently become effective at a certain plant.
- No Saved Search – Share does not present a way for users to save a search to re-execute at a later time.
Search Criteria – OpenContent Management Suite
OpenContent Search was built from the ground up with a focus on search as the primary way that users find content within the repository. In the past, most clients want to be able to target searches to particular types and attributes, rather than the “Google” approach that searches everything. To that end, OpenContent Search is:
- Streamlined – users select from available ‘Tracs’, which can be thought of as a business-segment of the repository. For example, ‘Accounts Payable’ trac users would search on Vendor folders or Invoice documents. ‘Insurance’ trac users would search on Policy Folders, Claim folders, Underwriting documents and Claim documents. TSG works closely with our clients to ensure that the tracs are properly configured based on the needs of each OCMS deployment.
- Simple – An administrator configures the search and targets the key attributes for each individual document or folder type in the trac. Users do not need to wade through a long list of attributes to choose from.
- Configurable – an admin interface GUI is all you need to setup additional tracs or to modify an existing trac to enable searches on different document types or attributes.
- Advanced – along with the expected types of search controls, OC Search also has additional advanced controls such as configurable picklists and proximity dates that allows the user to search in proximity to today. For example, allow the user to search for Policy folders where the policy expiration date is in the next 7 days/weeks/months.
In OCMS, there is no global “Google” type search box. Users select a trac, and then select a type to search on. If the user only has one trac and/or one type available for search, the system smartly just defaults and no clicking is required by the user. There’s nothing to stop an administrator from configuring a search across all documents in the repository, but in most systems this is not desirable. Some examples:
Search for Controlled Documents:
Search for Insurance Policy Folders:
Search Results – Share
After executing a search in share, whether from the search bar in the header or the Advanced Search page, the Search Results page loads with results and takes over the entire screen. One common problem that many of search interfaces including Share make when displaying search results is to hide the search criteria, making it very hard for the user to tweak the search criteria to run a modified search. While Share does display the criteria from a quick search entered into the header, the Share binterface does not show any criteria values when the user executes an Advanced Search. This is a curious design choice, since allowing the user to tweak the criteria after the search completes is much more useful in the Advanced Search scenario.
Share displays all search results in a list view by default, with search facets displayed on the left hand side and sorting and view controls on the right:
Clicking the gear icon on the right gives the user to toggle between the list view shown above or a ‘gallery’ view that shows larger thumbnails. Some concerns we have with the Share search results interface:
- No Custom Type Support for both attribute display as well as sorting. This likely stems from the discussion above on searching for a specific type, but out of the box Share displays a generic search results screen for all document types. There’s no way to sort or facet on custom type metadata without advanced XML configurations discussed below.
- No Table View – the ability to view results in a table and allow the user to sort and filter within the table is a common requirement.
- No Export to Excel – the ability to export search results in a tabular format to an Excel spreadsheet is another common requirement we see from clients.
- Pagination Via ‘Infinite Scroll’ – when a search returns many results, Share paginates the results via an infinite scroll, meaning more results are added to the end of the list as the user scrolls close to the bottom of the page. While this may make for a clean interface without typical pagination controls, it can be problematic when returning many results and attempting to filter the set down to the 5-10 documents that the user is interested in.
- Cannot Execute ECM Actions – if the user wants to execute an action against a search result, there’s no way to do so from the search results page. For example, say the user wants to view or edit properties of one of the returned documents. The user must click on the document which takes over the entire screen, losing the search results context. After viewing and editing properties, the user must either re-execute the search or attempt to use the ‘back’ button on the browser to get back to the results list.
Search Results – OpenContent Management Suite
From the earliest incarnations of the OpenContent Search interface (originally called the High Performance Interface or HPI since 2008), TSG has always promoted having the search results interface present the results along side the criteria. This gives the user full context to the search results as well as allows the user to quickly tweak the criteria and re-execute the search.
OpenContent Search defaults to displaying search results in an admin-configurable table along side the search criteria:
Similar to Share, a ‘gallery’ type view with thumbnails is also available for the user after clicking the camera icon in the top right. Some other important features to note when comparing the OpenContent Search results interface to Share:
The administrator configures which metadata columns are available for a given search type and defines which columns are visible vs. hidden. However the user can tweak these settings and OCMS will save the user’s preferences. This is a very common requirement. See the video embedded in this post to see how OCMS allows the user to configure search result columns.
Export to Excel
Exporting the search results to Excel is another common requirement. This is easily done in OpenContent Search by choosing the results to export (or simply selecting all) and executing the Export to Excel action:
While Share does provide facet filtering, it only allows filtering on common metadata. OpenContent Search allows for facet-based filtering as well as quick filtering that will narrow down results based on anything displayed in the search results. See the video embedded on this post to see OCMS filtering in action.
As mentioned above, Share does not allow the user to execute document or folder actions from the search results screen. The user must click on the document, which takes over the entire screen losing the user’s context to the search results. In OpenContent Search however, the user can simply use the ‘Actions’ menu, as described above with exporting search results to Excel, or right click. For example, the user can view and edit properties of a document from search results, without losing context:
Clicking the view properties action launches in a modal, preserving the user’s context to the search results:
Configuring Search Comparison
Both Share and the OpenContent Management Suite allow you to configure the search screen to allow users to search on custom types and attributes. Here’s a comparison of the steps to do this in each system:
Configuring Search in Share
- Create or edit the share-config-custom.xml file, which holds form configurations for custom types in Share.
- Update the XML to configure a form for each object type you would like users to be able to search in Share.
- Update the XML for the Advanced Search component to add your new forms created in the previous step.
- Stop Alfresco.
- Deploy your changes to Share, typically via an AMP.
- Start Alfresco.
- Login to Share and navigate to the Advanced Search page to see your changes.
To read more about this process, or to see an example of the XML configuration involved, check out this tutorial written by Jeff Potts.
Configuring Search in OCMS
- Login as an administrator and navigate to the OCMS admin GUI.
- Use the GUI interface to add, remove or modify object types and metadata in the applicable search form. When complete, save your changes.
- Navigate to the search page to see your changes.
Overall, Alfresco Share provides some basic searching capabilities that are useful in certain situations. Alfresco Share search may work for small to medium sized repositories, or when searching on custom types and custom attributes is not required. However, in large repositories and when users need to be able to search on a specific content type and attributes, OpenContent Search provides a powerful way to configure a search screen that is simple for users to understand. Additionally, the OpenContent Management Suite administration module gives users a nice GUI interface for editing configurations and does not require XML modification or server restarts to take affect.
Let us know if you have any additional thoughts below.