question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Description

Easy and quick way to find any resource in the organisation.

Example: global search

What problem does this solve?

Users don’t need to search explores one by one to find what they want.

Requirements for v1

  • search scope: in selected project
  • searchable resources: spaces/folders, dashboards, saved charts, explores, group labels, fields ( dimensions/metrics )
  • match by: name or description
  • results order: spaces/folders > dashboards > saved charts > explores > fields ( keeping it simple for v1 )
  • result info: icon, name, description. In the case of group labels and fields, show the table name as well.
  • on click action: redirect to that resource
  • hotkeys: ctrl + f and cmd + f should show the omnibar

Technical details

  • only trigger search after 3 charts typed ( to avoid matching enormous amounts of results )
  • have a bounce/debounce so we only search after the user stops typing
  • ( if possible ) show a loading white is fetching new results but keep matching results available.
  • add new endpoint for global search Post Array<SearchResult | SearchResultWithTableInheritance>
interface SearchResultBase {
    type:
        | 'space'
        | 'dashboard'
        | 'saved_chart'
        | 'explore'
        | 'group_label'
        | 'dimension'
        | 'metric';
    projectUuid: string;
    label: string;
    description: string;
}

interface SearchResult extends SearchResultBase {
    type: 'space' | 'dashboard' | 'saved_chart' | 'explore';
    resultUuid: string;
}

interface SearchResultWithTableInheritance extends SearchResultBase {
    type: 'group_label' | 'dimension' | 'metric';
    table: {
        uuid: string;
        label: string;
    }
}

Issue Analytics

  • State:closed
  • Created a year ago
  • Reactions:3
  • Comments:8 (5 by maintainers)

github_iconTop GitHub Comments

2reactions
ZeRegocommented, Jul 15, 2022

For the three character limit, Slack does this really well for their productboard + canny integrations (I feel like this is just a Slack component):

@TuringLovesDeathMetal I like it ! let’s just hope Blueprint allows us to do that 😅

Can we specify exactly what’s the click action on each resource ? for example: explores ?

@rephus Would show the explore page for that explore/table with no selected fields.

fields: Explore page with fieldId selected (no chart will be displayed with just 1 metric/dimension)

Correct. It’s fine to not have a chart available.

How would the search actually work? Substring matching? Will there be typo tolerance like Algolia?

@12ian34 Good question. I’m not sure what we can do with SQL/Postgres but I wouldn’t invest much time to build typo tolerance for v1. Just a simple match would go a long way.

Can you search by user?

Right now I don’t see the advantage of searching for a user since we have a central place to see all the users in the org and project.

Is the navbar definitely the best place for it - perhaps on the homepage it could be more central, near the top in the main section (as well) kinda like Google?

From my experience the search is always in the navbar of most websites I use. Open to hear what other people think and especially @PriPatel 🧑‍🎨

Do we want to update the icon for “Browse” along with this work to avoid confusion since it is currently a magnifying glass?

Note that the gif provided is just a mockup/wireframe so it’s open to change. Yes, I think the icon and even the word ‘browse’ could be changed. We also talked about removing/changing it it the spaces milestone.

Could we navigate results by up/down arrow instantly, and use Return to select?

Yes, blueprint component already behaves like that 🙌

1reaction
owlascommented, Jul 25, 2022

For the search backend @ZeRego we have the option to use full text search in postgres: https://www.postgresql.org/docs/current/textsearch-tables.html

Fastest query time would involve adding a new index to each table for searching.

A simpler version could just use LIKE clauses: https://www.postgresql.org/docs/current/functions-matching.html

Read more comments on GitHub >

github_iconTop Results From Across the Web

Global Class Search
Global Search finds courses across the University using filters such as college, semester, subject area, time, and online/in-person delivery.
Read more >
Global Search Group | Quality placements for your difficult needs
Global Search Group is an established boutique recruitment practice that specializes in the custom search… READ MORE. How We Work. Our process is...
Read more >
The Global Search Company
We are a determined, fast, high quality recruitment provider focusing on one key component - the Customer! Making sure both, our candidates and...
Read more >
Enterprise Content Management Software (ECM) - Square 9
GlobalSearch ECM provides everyone in your organization with easy access to all the information they need to make business decisions, complete projects, ...
Read more >
Global search - Moodle.org
Global search. Collapse all Expand all. Search. Search. Search. Enter your search query. Filter. Filter. Filter. Title. Search area.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found