With Akumina 5.5 Search, we query source lists for news, events, and other taxonomy route pages, we continue to use the indexer PageData_AK for virtual pages.
As the SharePoint search indexer does not index content rendered via Javascript on the page, Akumina uses an indexer that will add the rendered page content into the PageData_AK list, which can then be searched. In addition, the contents of the Akumina widgets must be properly indexed by search so that when a content term is found, the result will provide the site user a link to the page(s) on which the content resides, rather than a link to the SharePoint list which holds the content.
Create New Manage Properties in the Search Schema
The managed properties can be configured at either site-collection level or tenant level:
- If you have multiple delivery sites or envision having multiple delivery sites, we recommend configuring the managed properties at the tenant level.
- If you have a stand-alone site or just one delivery site and will always have just this one site to search in – the managed properties can be configured at the site collection level.
- Depending on which level you plan to configure the managed properties at, you will need the following permissions:
- Site collection level – Site collection administrator account (go to Site Settings >Site Collection Administration>Search Schema)
- Tenant level – Tenant administrator account (go to Admin>SharePoint>More Features>Search>Open Search>Manage Search Schema)
As shown in the table below, edit an existing property or add a new one as mentioned below:
Action | Manage Property | Type | State | Searchable | Queryable | Retrievable | Safe | Token Normalization | Alias | Mapping to Crawled properties | Crawl properties |
Edit | RefinableStringXX | no change | no change | no change | no change | no change | no change | no change | SPModifiedBy | no change | Office:8 |
Edit | RefinableStringXX | no change | no change | no change | no change | no change | no change | no change | SPCreatedBy | no change | Office:4 |
Edit | RefinableStringXX | no change | no change | no change | no change | no change | no change | no change | SPSubsiteURL | no change | ows_SiteName |
Edit | RefinableDateSingleXX | no change | no change | no change | no change | no change | no change | no change | SPArchiveDate | no change | ows_q_DATE_Expires ows_ArchiveDate |
Edit | RefinableDateSingleXX | no change | no change | no change | no change | no change | no change | no change | SPPublishDate | no change | ows_Start_x0020_date ows_PublishDate |
New | SPAKLanguageCode | Text | Yes | Yes | Yes | Yes | Yes | Yes | Include content from the first crawled property that is not empty, based on the specified order | ows_q_TEXT_AKLanguageCode ows_AKLanguageCode |
|
New | SPDescription | Text | Yes | Yes | Yes | Yes | Yes | Yes | Include content from the first crawled property that is not empty, based on the specified order | ows_r_MTXT_Seo-Description ows_r_MTXT_Body ows_r_MTXT_Summary ows_r_MTXT_Description |
|
New | EventRecurrence | Text | Yes | Yes | Yes | Yes | Yes | Yes | Include content from the first crawled property that is not empty, based on the specified order | ows_frecurrence |
Note – Crawl Properties – ows_PublishDate and ows_ArchiveDate are new properties, so they will need to be added by following these steps
- Add a virtual page > Set Archive Date and Publish date > Schedule publish.
- Check the entry in PageData_AK
- Reindex the list.
- The crawl property will be available and can be added.
If an existing property needs to be mapped – Edit any RefinableString example RefinableString02
Give alias as SPModifiedBy
Map crawl property Office:8, click on Add a Mapping to add crawl property
Managed Property
The Managed property “ServerRedirectedURL” is the value that determines the URL for a given item – we can alter the URL presented to the user in the search results by adjusting this property.
We thus edit the mappings to crawled properties for the “ServerRedirectedURL” managed property. We add in the crawled property for the FriendlyUrlSearch column, ows_FriendlyUrlSearch, and place it at the top of the mappings. If this value is present it is used in place of the SharePoint URL for the item (DispForm.aspx).
Verify PageData_AK List has items
On the root of the site collection, navigate to the list “PageData_AK”, and verify that there is content in this list. Content gets added to this list by visiting site pages, so if there is no content try navigating around the site and then checking the list again.
ReIndex List PageData_AK
On the root of the site collection, navigate to the settings for the list “PageData_AK.
- On the settings page click on “Advanced settings”.
- Scroll down the page and select “Reindex List”
Configuring the Search Management App
Refer the guidelines here to configure the new Search Management App
Excluding Certain Content from Search
The Akumina Foundation Site uses SharePoint for site search. There are 2 places where site search is used:
- The Typeahead in the upper right of the site
- The Search results page located at [site collection url]/Pages/Search.aspx
It is possible to exclude portions (widget instances) on any page from this index process, as this allows for use cases such as the following:
- Do not index the main menu or footer
- Do not index user specific content, such as a list of tasks.
Content exclusion can be done in 2 ways:
- Attach the class aksearchexclude to an element; that element and its children will be excluded. Example:
- <div class=”aksearchexclude”>
- Adding a formatted comment; content between will be excluded.
For the formatted comment, the widget instance code that is entered into the Content Editor web part must be surrounded with the following tags. When the indexer is run, the content between the tags will be left out.
<!-- aksearchexclude:start -->
[Widget instance code here]
<!-- aksearchexclude:end -->
<!-- aksearchexclude:start -->
, ensure the spaces and dashes are correct. Example:
The comment method can also be used directly in the view instead of the web part.
Example:
Adding additional fields in the indexer
It is possible via a callback to modify or add in additional fields to the search indexer. For example, you have another field, PageCategory, in the PageData_AK list, where you want to capture additional data for the search. Using the function AkSearchExclusionCallback you can modify the data that gets entered into the list.
window.AkSearchExclusionCallback = function(model, currentPage){
// find a value in the page
var pageCategory = $(‘.someclass’).val();// add a new field; this property name should match the list field name exactly
model.PageCategory = pageCategory;// modify the html to be indexed.
model.Html = model.Html + ” some additional text”;
// Single Taxonomy Example
// In actual usage, you would draw this from somewhere.
var termValue = new SP.Taxonomy.TaxonomyFieldValue();
termValue.set_label(“CORPORATE”);
termValue.set_termGuid(“1f164abf-d4cc-4d51-8f06-32b7f72177f1”);
termValue.set_wssId(-1);
model.PageKeywords = termValue;return model;
}