Feature Request: Improve search result matching

Options

We have a lot of vaults in our business/team. Mostly one per client, with some other project or purpose specific vaults. A lot of these vaults have many items with the same name, but a different set of credentials. E.g. many Google accounts (to name just one example).

Searching for and navigating to the right item quickly is difficult, because it appears that ONLY the item name is matched, and NOT the vault name where the item belongs OR the username within the item.

So in order for us to quickly find just the one login we are looking for, we have resorted to including both of these pieces of information in the item name. E.g. "Google - me@example.com - clientname/vaultname". This is really tedious, ugly, and visually noisy in listings and search results.

When search results are actually listed, 1Password does the right thing and displays both the item name AND the username to disambiguate results (AND a vault icon). BUT this doesn't really help when we type "Google" and still have to visually scan 40+ results to find the right one. AND results are hard to read because the username is usually listed TWICE (once in the item name where we have duplicated it, and again below in a subtitle for the username field).

It'd be AWESOME if we could just type "Google me" to see the one matching item named "Google" with "me@example.com" as the username. Or "Google vaul" to see the one matching item named "Google" in the vault named "vaultname".

ALSO, the web search is overly strict in its matching criteria, and this differs to the desktop apps (at least the macOS app). When I search in the desktop app for "Goo " (notice the space at the end, as I am about to type an additional keyword to filter), I still see all the "Google" items. When I search the web app for "Goo" (no trailing space) I see all the "Google" items, but as soon as I type "Goo " (about to filter with additional keywords) all the results disappear. ALSO doing a web search for "google me" doesn't match an item named "Google - me@example.com". I literally have to type "google - me".

ALSO, this is 2019. I'm sure 1Password developers are familiar with fuzzy substring matching from code editors like Sublime Text, Visual Studio Code, the various JetBrains editors, etc., which has been around for YEARS. If I make a typo like "gog", I should still see results for items with "Google" in their name. Search should match .*? in between each character. As long as all characters in my keyword appear in order, but not necessarily consecutively, I should see results. Furthermore, results should prioritise exact and consecutive matches. Additional keywords should be matched separately to further filter existing search results. Space should separate keywords, not be part of the search phrase.

See:

I'm sure there are similar implementations in whatever language you require for the native and web apps. Even if they are not as perfect as the Sublime Text implementation, anything would be infinitely better than the current web search (case insensitive substring, not even multiple keyword) AND significantly better than the native apps.


1Password Version: Not Provided
Extension Version: Not Provided
OS Version: Not Provided
Sync Type: Not Provided

Comments

  • Ben
    Options

    Hi @mrmachine

    Thanks for the detailed feedback on search and for the explanation of your supporting use case. You are correct that search doesn't account for vault name. You can limit what vault you are searching though. Most people 'live' in 'All Vaults' all the time. But if you know you're looking for an item for Client ABC and you've already taken the effort to sort all of Client ABC's items into an ABC vault, you can switch to that vault and search within only those items.

    Additionally, I believe most of our native apps do search usernames by default (iOS being an exception), but there is some ability to customize which fields are considered. In 1Password for Mac, for example:

    We have played around with fuzzy search a bit. The 1Password interface within the Password AutoFill feature on iOS 12 uses a fuzzy search. It is possible we'll roll this out more widely, but I don't have anything to announce at this point. We'd very much like to have more consistency across the clients and are making efforts in that direction where it makes sense. How search functions seems like a reasonable one to tackle. Hopefully things will continue to improve in this regard.

    Ben

  • mrmachine
    mrmachine
    Community Member
    Options

    Hi Ben,

    Thanks for your reply. You appear to be right that username is searched in the native macOS app, but it appears that it is NOT being searched in 1Password mini. So I get different results when searching in the full app or via the quick keyboard shortcut or browser extension.

    And yes, I know that I can switch to a single vault to search only within that vault, but that is really no solution at all. Like I said, we have nearly 50 vaults, and there are only convenient keyboard shortcuts for 9 of them (cmd-1-9, 0 being all vaults). If I search for "goog" and it brings up a list of 20 items, it'll probably take me LONGER grab the mouse, click on the vault icon, visually scan a list of 50 vaults to select one that I HOPE contains the item I need, than it would to just scan the 20 results. If I could just type a few characters of the vault name, I would get INSTANT feedback and if there are no results, I can quickly adjust my keyword filter until I do find results.

    And as you say, search criteria matches differently on macOS (app) vs macOS 1Password mini vs web vs iOS etc. Because web only does the most basic substring match (not even multiple keywords), we really can't rely on username being searched and we still need to duplicate that data in the item name. We have many users in our team and not all use the native apps.

    The fuzzy search from Sublime Text is phenomenal. It is insanely quick to filter massive lists of similarly named files or references and quickly and progressively filter down the list, prioritising the best match, with keyboard navigation. Please implement fuzzy search AND include the vault name in the data being searched.

    Cheers.

  • AGAlumB
    AGAlumB
    1Password Alumni
    Options

    50 vaults? :scream: Maybe we can add a vault searching feature in a future version. And we'd also like to expand the capabilities of the 1Password web interface as much as is feasible as well. :)

    "Implement fuzzy search" sounds like a really good idea, but as other developers can tell you it's much more involved than checking a box -- especially for an app like 1Password, which works exclusively with encrypted data. But it's definitely something we'll continue to iterate on as we develop 1Password going forward. Thanks for your feedback on this! :chuffed:

  • mrmachine
    mrmachine
    Community Member
    Options

    Searching vault names in addition to item field data would be a big help.

    I can understand that working with encrypted data might be tricky. But surely if you're already searching the data via substring match or multiple keyword match, you have access to the unencrypted data and should be able to apply some kind of more advanced ranking or fuzzy matching. There are working implementations that behave similarly to Sublime Text in the links I gave. Sublime Text, Visual Studio Code, PyCharm to name a few all support similar fuzzy matching. I just don't buy that "fuzzy search" is too hard or complicated.

    It doesn't have to be the best implementation of all time. Even just splitting the search phrase into keywords (whitespace separated), then splitting each keyword into individual characters, and doing a regex search for '.*?'.join(chars) for each keyword, would be a big improvement.

    And raising the lowest common denominator from exact phrase match (white space and all, in the web client) would be a huge improvement as we must name our items to be searchable in the web client.

    Thanks.

  • Ben
    Options

    We do have an implementation of fuzzy search in our 1Password for iOS autofill feature. As we continue to iterate on that we may expand it out into our other offerings as well. :)

    Ben

This discussion has been closed.