Guru’s search uses several types of technology to find information relevant to what users are searching for. This article covers how Guru interprets search terms and how search results are gathered. You can also learn how content is indexed for search in Guru and how search results are displayed.

Interpreting search terms provided by users

After you type a search term in the web app or browser extension search bar, several things happen:

  • Guru checks to see if there are alternate forms of the search term(s).

    • For example, if you entered "ran", Guru will include "run", "running", and "runs".

  • Guru does a spell check (also known as fuzzy matching).

  • Guru evaluates punctuation marks and spacing.

    • For example, "self service" versus "self-service".

  • Guru considers potential synonyms.

    • For example, if a searcher provides "vacation" in the search bar, Guru may also consider Cards with the word "holiday" in them.

  • Guru considers double quotation marks used when you are searching for a specific word combination or an exact phrase.

    • For example, "engineering onboarding" will find Cards that have that exact phrase only.

  • Guru uses machine learning (“ML”) to form a representation of the meaning of the search terms. This is part of Guru’s semantic search capabilities.

Gathering relevant results

After analyzing the search term(s) provided, Guru will find Cards that are relevant to those terms. Relevance is based on many factors, including:

  • Where matches are found in a Card.

    • For example, a match could be found in the Card's title, Tags, attachment, content, etc.

  • How many “matches” to the search term(s) there are in the Card.

  • How well the meaning of the Card matches the meaning of the search terms as determined by an ML process.

  • How much interaction a Card has received and if that interaction happened recently or a long time ago.

    • Interactions include favoriting, viewing, and copying.

    • Recent interactions are a little bit more important than old interactions.

  • How recently a Card was created.

We use an ML process to determine the best weight for all of these different factors combined. These values are updated on a regular cadence based on historical search activity.

In addition to the inputs derived from Card content and actions on Cards, Guru also uses data about which search terms have successfully led other members of your team to Cards as a way to ensure that the most relevant Cards are as high in the results list as possible.

The process for finding relevant Cards in search is a complex combination of several sub-processes that are constantly being evaluated, tested, and adjusted. The factors mentioned above are a simplified representation of this process.

✍️ Note

Users will only see Cards they have permission to view in their search results.

Title Search

This feature is designed to help you quickly find the content you are familiar with or that is highly relevant based on the title of the Card. The three results that appear in the dropdown under the search bar in the extension and web app are based only on the content of Card titles; no other parts of the Card are considered for this search. This search will generate up to three results as you type, and they will change as you add or edit what you’ve typed.

Several of the same processes that contribute to regular search results also influence title search:

  • Alternate forms of the term(s) are provided (i.e. run vs runs).

  • How closely the Card title aligns with the search terms provided. For example, in a query that includes multiple words, finding more of those words in the title of the Card is better.

  • The interactions a Card has received and how recently they occurred.

  • How recently a Card was created.

  • Exact match queries will be treated the same as with normal search, Guru will only find results that match the terms provided very closely.

Notably, spellchecking and ML processes for interpreting the meaning of search terms and Card content are not part of the process of returning results for this type of search.

📑 Related articles

Did this answer your question?