MC+A Stream

Our Blog and News Stream

Displaying Search History in XSLT on your Google Mini or Google Search Appliance

March 23rd, 2010

The Steps To Implement Search History On A Google Search Appliance or Google Mini

A few weeks ago there was a thread on the Google Groups regarding how to display search history on a Google Search Appliance query results page.  Our approach typically at MC+A is to utilize the xslt as much as possible as it provides less complicated infrastructure.  Because of this, we tend to utilize JQuery to provide some dynamics features to the interface.  In this case, it’s search history.  This article assumes you have some idea about jQuery, specifically the Ready function.

Step 1 – Create A DIV

Create a HTML DIV in your results page that you would like the history to be displayed.  For example:

<div id=”recentHistory”>No Recent Searches</div>

Note the id that you use for later in this process. You can also place text with the div that will be displayed until the jQuery finishes loading.

Step 2 – Add A Function Call to jQuery.Ready

$(document).ready(function(){
    setHistory(); //Function to set the Div
});

Step 3 – Add the Function Call

The following function relies on 5 other functions:

  1. GetCookieVal – Get’s the Cookie Value
  2. GetCookie – Get’s a raw Cookie
  3. DeleteCookie – Delet’e’s a Cookie
  4. SetCookie – Set’s a Cookie
  5. GetParameter – Get’s a Query String Value
function setHistory(){
    var gsaCollection = getParameter(window.top.location.search.substring(1), "site");
    var gsaClient = getParameter(window.top.location.search.substring(1), "client");
    var gsaStylesheet = getParameter(window.top.location.search.substring(1), "proxystylesheet");
    //var gsaAccess =getParameter(window.top.location.search.substring(1),"a");
    var recentHistory = "<ul>";
    var historyTemp = GetCookie("searchhistory");
    var history;
    if (historyTemp == null) {
        var q = getParameter(window.top.location.search.substring(1), "q")
        if ((q == null) || (q == "")) {
            //no history
            recentHistory = recentHistory + "<li>None</li>";
        }
        else {
            recentHistory = recentHistory + "<li><a href=\"search?site=" + gsaCollection + "&client=" +
            gsaClient +
            "&proxystylesheet=" +
            gsaStylesheet +
            "&access=a" +
            "&q=" +
            q +
            "&output=xml_no_dtd" +
            "\" > " +
            q +
            "</a></li>";
            SetCookie("searchhistory", q, expiry);
        }
    }
    else {
        historyString = new String(historyTemp);
        history = historyString.split("|");
        var newHistory = new Array(5);
        var newHistoryString = "";
        newHistory[0] = getParameter(window.top.location.search.substring(1), "q");
        newHistoryString = newHistory[0];
        recentHistory = recentHistory + "<li><a href=\"search?site=" + gsaCollection + "&client=" +
        gsaClient +
        "&proxystylesheet=" +
        gsaStylesheet +
        "&access=a" +
        "&output=xml_no_dtd" +
        "&q=" +
        newHistory[0] +
        "\" > " +
        newHistory[0].replace(‘+’, ‘ ‘) +
        "</a></li>";
        for (var i = 0; i < history.length & i < 4; i++) {
            newHistory[i + 1] = history[i];
            newHistoryString = newHistoryString + "|" + history[i];
            recentHistory = recentHistory + "<li><a href=\"search?site=" + gsaCollection + "&client=" +
            gsaClient +
            "&proxystylesheet=" +
            gsaStylesheet +
            "&access=a" +
            "&output=xml_no_dtd" +
            "&q=" +
            history[i] +
            "\" > " +
            history[i].replace(‘+’, ‘ ‘) +
            "</a></li>";
        }
        SetCookie("searchhistory", newHistoryString, expiry);
    }
    recentHistory = recentHistory + "</ul>";
    document.getElementById("recentSearches").innerHTML = recentHistory;
}

I am planning on cleaning up the function and posting it here it its entirety in the next couple of days.;

Reply with a comment to nudge me along if I forget.

Google Launches New Version of 6.x

October 20th, 2009

Google Business published a video detailing some of the new version of the Appliance(see below).  The new version of the Google Search Appliance has improved and new features in the following areas:

Access Control

  • Universal Login
  • SAML Identity SPI
  • Multiple Cookie Domains

High Availability

  • GSA Mirroring

Administration

  • Real-Time Diagnostics

Connectivity

  • Native Integration with SharePoint
  • Faster ECM Connectivity
  • Connectivity to Lotus Notes
  • Expanded Support for File Shares and Databases

Search Quality

  • Automated Self-Learning Scorer
  • Composite Collections
  • Advanced Language Phrase Segmenting

Authentication with Kerberos on Windows 7 and the Google Search Appliance

October 19th, 2009

If you are an early adopter of Windows 7 and you own a Google Search Appliance, be sure to set the following local policy so that Kerberos will be enabled:

  • Local Security Policy
    • Local Policies
      • Security Options
        • Network Security: Configure encryption types allowed for Kerberos

Enabling all options under Network Security: Configure encryption types allowed for Kerberos

clip_image001

Hidden Features in the Google Search Appliance 6.0 Part 4

September 21st, 2009

DNS Override

Often during our implementations we find that DNS is not set up properly for the DMZ or other vlan.  In these cases, it would be great if you could specify a hosts file on the appliance.  In version 6.0 of the appliance, you can.

The administration override for DNS can be found here:

http://yourappliance:8000/EnterpriseController?actionType=dns

image

Results of MC+A’s third quarter customer survey

September 18th, 2009

Google Search Appliance customers typically find value in the product

In August, we published our first public survey here.   Our goal was to explore how many of the basic features of the Google Search Appliance were being implemented by customers of the product.  We promised to share the results of the survey when we completed it.  After 6 weeks, we’ve decided to wrap up this survey and begin to start planning for the next one next quarter.  Here are the results are our observations of the survey.

Summary

At the time of this writing, only 18 responses were received.  The number of responses received makes the survey generally statistically insignificant.  However, the responses fall in line with our previous expectations.  We also feel that most of the responses were from our customers and not of the general population of Google Enterprise customers.  This would mean that that would be mostly in the United States and a systems integrator would have more involvement with them then of a typical Google Enterprise customer.

Overall,

  • Customers think the Google Search Appliance provides value
  • Customers are typically not investing significantly in their implementation(beyond the cost of the GSA).
  • Customers are not using OneBoxes.
  • Most customers could be using their appliances to crawl more content.

We’ll begin to create another survey in October, conduct it in November and publish it in December.  If you have input for the survey, please contact us.

Google Search Appliances Owned

Production Appliance

Number of Sources Indexed

Number of Documents Indexed

How are Source Protected

How many Unique User Experiences are Deployed

Number of OneBoxes

Did GSA provide Value

Total Cost of Hardware

Cost of Services

Number of Employees

Hidden Features in the Google Search Appliance 6.0 release – Part 3

September 17th, 2009

Feed Files Awaiting Processing

If you are a developer of external feeds to the Google Search Appliance, you spend a lot of your time waiting for feed process to move from the “Feeds” page to update.  There is an new feature to view the remaining count of documents waiting to be processed.  This can be accessed by going to /getbacklogcount on the back of the feed service port 19900.  Try it out:

http://yourappliance:19900/getbacklogcount

Last Call For Survey Responses

September 16th, 2009

A few weeks ago, I published a request for responses to a simple survey regarding how customers are using their Google Search Appliances.  After much arm twisting we’ve managed to get a few people to respond and are going to publish our findings here on this blog at some point on Friday.  If you have not done so, please fill the survey out.  It will literally will take less than one minute.  It’s a simple Google Spreadsheet.

https://spreadsheets0.google.com/viewform?formkey=dDZmXzB5cjV2dHBDSmttSnA0UEZyUXc6MA..

image

Return on Information (ROI) Jumpstart

September 10th, 2009

A few weeks back Google announced a “Welcome Package” for new customers who purchase a Google Search Appliance with a 1 Million document license. As a Google Enterprise Partner we are excited to be participating in this promotion.

Return on Information
We believe very strongly in enabling clients to manage their technology solutions, and because of this have always offered and strongly suggested our Jumpstart services to all our clients. What is exciting about this promotion is that new customers will be getting 2 days of consultation on getting your Google solution up and running, for FREE.

The Specifics
From Google:
“With this ROI JumpStart, new GSA users will accelerate their onboarding experience, from purchasing to deploying to getting relevant results to end users. Our partners will work with your team on site for two days, at no cost to you, sharing proven expertise and the GSA’s out-of-the-box results and getting your new GSA indexing repositories across your organization.”

Interested in more information about the ROI Jumpstart Offer?
Contact MC+A and we’ll be happy to discuss the Jumpstart in detail.

Hidden Features in the Google Search Appliance 6.0 release – Part 2

September 9th, 2009

LDAP Server Authentication

Prior to version 6.0, you could perform security trimming via LDAP authentication.  But you always had to maintain a custom list of user accounts.  Now with the release of 6.0.  You can use LDAP groups to list Administrators and Managers.

When enabled, you have to additional boxes to list a LDAP group for both the manager and administrator roles (see below).

image

Basic information regarding the set up can be found here.

Hidden Features in the Google Search Appliance 6.0 Release – Part 1

September 2nd, 2009

With much publicity, Google release software version 6.0 of the Google Search Appliance(GSA).  They main marketing was focused on GSA^n.  That is that a cluster of GSAs can be combined to index a billion documents.  That is far from many of our customers needs.  This series of blog posts detail some of the hidden gems that can be taken advantage of by the more common implementation.

Hidden Feature 1 – Ranking Framework

In the past couple of years, we often get requests for the GSA to be improved based on the popularity of certain sites or pages.  With the Ranking Framework, you can do just that.  The Ranking Framework you can specify boosting:

  1. Based on a url pattern
  2. Based on a specific url

These can been written to a file and via an ATOM post, the GSA will fetch this file and added it to a result policy.  The following is an example file Google’s documentation:

http://www.important.com/ 1
http://very.important.com/ 3
http://not.important.com/ -1
http://www.important.com/personal_stuff –3

You’ll then need to go and save the policy file to crawl the rescoring to occur.  The API include adding and deleting as well.  Good Luck!

Page 1 of 41234