Over the past two weeks, we’ve rolled out a new search backend. Refining our search system is an ongoing task, but this latest update represents a significant upgrade in terms of quality and features, so I wanted to highlight some of the notable changes. Keep in mind our search system is separate from our autocomplete system. The search results page is what appears after you type something in the search bar and submit it.
As a reminder, our search system is about finding things by name or title. If you’re looking to browse by category, we recommend using our browse pages and filtering by tag.
Better Text Matching, Higher Performance
The new service we’re using has much better support for various types of queries, including different languages and typo tolerance. It should now match substrings from your query in various new ways to help you find what you’re looking for. Those trying to find your game should have a substantially easier time doing so.
The system is substantially more performant than our old one. For this reason, we’re able to start indexing more fields related to each project page and provide more ways to find and filter pages.
Filtering Added
We’re now indexing the page type (games, assets, tabletop, etc.) with every indexed page. You can filter by these from the top of the search results page. We’ll likely add more filtering options in the future, but for now, this should satisfy the biggest complaint we received about not being able to find a particular type of item by name. For example, searching for Game Assets with “Cave” in their name.
Updated Fields Indexed for Games
We’ve changed what fields from game and project pages are used for indexing. The following is the list of fields that may match a user’s query in order of precedence:
- Title (including any title aliases set by a site admin)
- Project URL (if different from the title)
- Creator’s name and any contributor names
- Short description or tagline
The biggest changes here are that all contributor names contribute to a result, and the short description can be used for search terms.
Because we’re now indexing pages by their author names, we’ve temporarily removed the account search functionality from the search results page. We may revisit this in the future.
Jam Search Added
We’re now indexing all jams that are eligible for display. The indexing eligibility is the same as the eligibility for the jam browsing pages: The page must be published, the “Unlisted” option must be unchecked on the jam edit page, and new jam hosts will require human approval for their first jams. Example search, find all the GitHub Game Off jams.
Jam results can be filtered by their status, e.g., in progress, finished, upcoming, etc.
The fields used to index a jam are:
- Title
- URL (if different from title)
- Names of hosts
- The short description
Backend Processing
Our new search service runs independently of our primary database. For this reason, we now asynchronously index pages when changes are made by the creators. There may be a small delay between when a page is updated and when and how it appears in search results. Keep this in mind if you’re trying to test your project’s visibility and you just made changes to the page. You may want to check back in an hour or so if you don’t see what you expect.