Configuring Search for Akumina Widget Content - Akumina Community

Configuring Search for Akumina Widget Content

You are here:

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.

NOTE: If you are setting this up for your own custom designed site (versus the Akumina Foundation Site) that uses the Akumina Widgets, the indexing functionality must have been enabled by your developer as one of the “Page Lifecycle” steps (Index Page Data).  If you are not seeing the correct data, please verify that the function has been enabled.

 

Create the List “PageData_AK” on the root site collection

On the Root Site Collection, you will create a custom list called “PageData_AK” with the following columns:

  • Name = Html, Column Type = multiline text, PLAIN TEXT
  • Name = PageDataSiteId, Column Type = Single line of text
  • Name = PageDataTitle, Column Type = Single line of text
  • Edit the column “Title” and set “Enforce unique values

For Multilingual sites only, the following additional columns are required:

  • Name = AkId, Column Type = Number, Decimal Places “Automatic”
  • Name = AkLanguageId, Column Type = Number, Decimal Places “Automatic”
  • Name = AkLanguageCode, Column Type = Single line of text

Create New Manage Properties in the Search Schema

  • Navigate to Site Settings, under Site Collection Administration, select “Search Schema”.
  • Create the following New Managed Properties
    • PageDataSiteId
    • PageDataTitle
    • AkLanguageId (Only if Multingual is turned ON for this Site)
  • For each of the new managed properties, set the properties as:
    • Searchable
    • Queryable
    • Retrievable

Example:

 

  • For “Mappings to crawled properites”, click “Add a Mapping”-only ONE value will be added as a mapping for each New Managed Property.
    • For PageDataSiteID:
      • Find – PageDataSiteId – select – ows_PageDataSiteId – click OK
    • For PageDataTitle:
      • Find – PageDataTitle – select – ows_PageDataTitle – click OK
    • For AkLanguageId (if multilingual enabled site):
      • Find – AKLanguageId – select- ows_AkLanguageId– click OK

Example:

 

  • Click OK at the bottom of the page to complete the Managed Property definition.

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”

 

NOTE – It can take up to 24 hours before the Crawl will take effect on this site and return site search results.

 

Excluding Pages from Search

It is possible to exclude entire pages from being indexed by the Akumina Framework. This is done via the Search Page Exclusion List property in the configuration. This is a list of the pages which you want to EXCLUDE from the search results.  A page listed here will not be crawled by the search engine.  Pages are separated by commas and can use a relative URL path.  The default search, page not found and logout pages are automatically populated in this field.  You can add additional pages now or after the site deploy.

This ca be changed via the following actions:

  • Login to the App Manager for the current site (or the central site if used).
  • Go to Management Apps -> Site Creator
  • Select Digital Workplace Core Site from the site dropdown
  • Select Update Configuration Settings from the Action options
  • Add or update the values in the Search Page Exclusion List property, then update the configuration.

When changing this value, any existing pages that are now excluded will still be in the PageData_AK list. You must locate the entries by filtering the Title column (which is the URL for the item) and then deleting the entry. Then re-index the PageData_AK list to update the SharePoint search index; see ReIndex List PageData_AK in this article.

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 -->

The format must be exactly <!-- 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;
}

Views: 1530
//]]>