2022.12.02

// The one about search filters.

Hello Guardians,

Earlier today we launched a number of upgrades to our search experience. These include filters, advanced text queries, and recent searches. We'll be going over how all of these work, but first, a quick overview on search at its most basic.

Basic Search

If you already know the name of the weapon you're looking for, you're in luck! The base behavior of our search is just to query for a weapon's name.

We currently use a "fuzzy search" algorithm, which means you can input text that's close enough to the weapon's actual name and it'll still match. So no worries if you make a typo or can't remember how to spell it exactly.

In addition, this works across the weapon's entire name, so you can type in something like adept and be treated to all the weapons with "Adept" in their names (but not say, the Master-level Raid weapons that include "Timelost", "Harrowed", etc... more on that in a bit).

None of that is new! But I've yet to mention it elsewhere, so figured now's a good time as any.

Filters

When you open the search menu, you'll now be greeted by 8 shiny new filter keywords. You can simply click on one of these to select it, but you can also navigate through our search menu using the Up and Down arrow keys, and smacking Enter/Return to confirm. Additionally, you can type a letter or two in, which will filter the filters and bring the closest match up to the top.

After selecting one of these filter keywords, you'll see the available options for it! Select one and... tada! It'll filter the results shown at the bottom of the menu under the "Results" heading.

If you want to remove a filter after having added it, you can hit Backspace to clear them out one by one from right-to-left, or use the Left and Right arrow keys to select a specific one and then hit Backspace. Clearing the search through the "x" button off to the right will also clear all of your current filters.

Combining Filters

As I just hinted at, if you're looking for something a little more specific, you can select multiple filters to further narrow your search. Only weapons that match all of the filter conditions will be shown. (It acts as as a logical AND for those curious).

This works with filters of different types (so you can combine filters for frame and weapon), and with multiple trait selections. If you want to find weapons that can roll both Demolitionist and Adrenaline Junkie, selecting a trait filter and finding each will do the trick. Note that currently this won't guarantee these traits be in separate columns, just that they're both capable of rolling on the weapon.

It's also worth noting that since these work as a logical AND, choosing multiple filters of the same type won't be able to match anything (aside from traits, as we just went over). This is because a weapon can't be both a Sidearm AND a Hand Cannon... sorry Forerunner. I'll make this a bit more streamlined in the future, but wanted to make sure you're all aware!

Advanced Text Queries

While the above should cover most use cases, we also now have support for more complex logical queries if you're really trying to weigh your options.

Entering text in the form of a keyword:value pair will work the same as selecting from the base filter/autocomplete flow. Same keywords, same values (and we'll still show you the available options). Any text you enter that's not paired in this syntax is treated as a search for the weapon's name.

If your query requires text with spaces in it, you can either escape it with double quotes, weapon:"auto rifle", or you leave out the spaces, weapon:autorifle, which will work just the same. In fact, since we use the same fuzzy search in our queries as we do with weapon names, you can just leave it at weapon:auto, or some slightly misspelled version.

Logical Operators

White space works as a logical AND operator for multiple key/value pairs, in the same way as selecting multiple filters does. However you can also use a comma-separated list of values. For example, trait:demolitionist,adrenalinejunkie or even just trait:demo,junkie.

A single pipe | works as a logical OR operator. To circle back to our adept example from earlier, to include the Master-level Raid weapons in that search, we could input adept|harrowed|timelost. Note how there's no keyword: included here, so this is a query for the weapon's name.

Some additional examples could be rpm:390|450 weapon:pulserifle to get Pulse Rifles across both of those subfamilies, or energy:kinetic|stasis frame:lightweight to get Lightweight Frame weapons in the Kinetic slot. At least until we get a Stasis Lightweight sword...

If you need to negate some part of a query, we have a NOT operator in the form of !. So to get all Shotguns that aren't Kinetic, you could do weapon:shotgun energy:!kinetic.

Of course, you can combine these operators to create more powerful queries. Revisiting our earlier search for grenade-focused mayhem, we could expand it to be trait:demo,junkie|osmosis if we NEED Demolitionist to be on the weapon, but are fine with either Adrenaline Junkie or Osmosis.

Recent Searches

Right now it's just the 3 last searches that you clicked through on. Pretty simple. We could show more, but currently I wanted to limit it for the sake of not taking up too much vertical real estate. In the near future I'll add functionality to clear specific items.

Wrapping up

If you read through all of this, thank you! I really do hope you find the added functionality useful.

Please, let me know if you have any feedback on the site, what you want to see next, what you feel is missing, if there's something you particularly enjoy.

I'm a one-woman team and any of this info will help shape how I prioritize what I spend my time working on.

-- Kat