/**
  *	Log a user search generated suggestion.
  *
  *	@parameter <{SEARCH_TERM}> string
  *	@parameter <{EXTENSIBLE_SEARCH_PAGE_ID}> integer
  *	@return extensible search suggestion
  */
 public function logSuggestion($term, $pageID)
 {
     // Make sure the search matches the minimum autocomplete length.
     if (strlen($term) < 3) {
         return null;
     }
     // Make sure the suggestion doesn't already exist.
     $term = strtolower($term);
     $filter = array('Term' => $term, 'ExtensibleSearchPageID' => $pageID);
     $suggestion = ExtensibleSearchSuggestion::get()->filter($filter)->first();
     // Store the frequency to make search suggestion relevance more efficient.
     $frequency = ExtensibleSearch::get()->filter($filter)->count();
     if ($suggestion) {
         $suggestion->Frequency = $frequency;
     } else {
         // Log the suggestion.
         $suggestion = ExtensibleSearchSuggestion::create(array('Term' => $term, 'Frequency' => $frequency, 'Approved' => (int) Config::inst()->get('ExtensibleSearchSuggestion', 'automatic_approval'), 'ExtensibleSearchPageID' => $pageID));
     }
     $suggestion->write();
     return $suggestion;
 }
 /**
  *	Retrieve the frequency percentage.
  *
  *	@return string
  */
 public function getFrequencyPercentage()
 {
     $history = ExtensibleSearch::get()->filter('ExtensibleSearchPageID', $this->ExtensibleSearchPageID);
     return $this->Frequency ? sprintf('%.2f %%', $this->Frequency / $history->count() * 100) : '-';
 }