Some GuideStar API customers want to provide or mimic an auto-complete search feature using the Essentials/Search API. The Essentials API is implemented in such a way as to make it easy for a consumer of the Search to find an organization based on a search term and a number of applicable filters. The Search API is not intended or equipped to provide “auto-complete” functionality. The Elastic-based search on GuideStar.org and the Essentials API employ “stemming” (https://en.wikipedia.org/wiki/Stemming), fuzzy search (https://en.wikipedia.org/wiki/Approximate_string_matching), multiple fields matching, and search results relevancy, which all contribute to making auto-complete type results very inefficient. The Essentials API is a “heavy handed” tool to be used for auto-complete.
Aside from an auto-complete application, applying a “contains” approach (a match of N characters, anchored at the beginning of a word) is also going to result in a “best guess” at generating results and sorting them by relevancy, all due to the aforementioned stemming, fuzzy search, multiple fields matching, and search results relevancy ranking.
Unless otherwise applied, the search will always try to do a “mix-and-match” to attain matches on as many tokens in the search term as possible, but limiting the minimal matching, so to not generate a “long tail” of minimally relevant results.
The relevancy, which sorts the final results set, is based on both the “organic” relevancy from term matching and the GuideStar Activity Sphere, which can direct relevancy sorting to better favor organizations which have the most content to offer, significant financial status, and other measures of the appeal of an organization to our user base.
The “search” consists of multiple individual component searches, each one trying to match all or part of the users input, and using different matching schemes, against one or more fields of each indexed document. There are components which contribute to recall (returned results) and those which only impact the relevancy scoring.
Each component can produce an intermediate set of results, which are all integrated to form a single, ranked set, and returned to the user. With several exceptions, such as address, most textural fields either contribute to recall or relevancy rank. The most important fields for generating a match are the organization’s name(s), Mission and all Programs.
The Essentials API is identical the Guidestar.org (www.guidestar.org) website in most aspects. Minor changes may be made to Search which may produce changes in search results and/or relevancy rankings. The product and is adapted to provide the most benefit to the majority of our users, and these are the users of the GuideStar.org web Search function at https://www.guidestar.org/search.