The things you can do with search

Posted on
Page
of 9
/ 9
Last Next
  • This is going to be fairly complex... and long... but the gist is that our search is now far more complex and powerful than anything we've had before, and as the saying goes, "With great power comes great confusion.".

    We used to have an "advanced search" on vBulletin. But that was pretty much a lie, there was nothing advanced about it. If you searched for "bottom brackets" then it wouldn't find you a "bottom bracket" (no plural)... but it would comfort you by giving you a few options... via 5 different search forms (one for profiles, one for posts and threads, one for "in this thread", one for PMs from/to someone, one for things in PMs).

    On Microcosm there is only one search form.

    One search form to rule them all, one search form to find them,
    One search form to bring them all and in the darkness bind them.

    Something like that, and this is the guide to search.

    Our search is like Gmail search, or Google search. One form, in which you put your search query.

    If you want to filter, or sort things... you type in key:value pairs to do whatever you want.

    Every key:value pair can also be a querystring... so you can bookmark this stuff (again... vBulletin couldn't do this very well).

    The most basic search is a text search:

    sks bottom bracket

    And you can do you #hashtag searches using this too, but note that in the URL you need to escape the #:

    #hashtags

    Cool... that's the basic stuff: You can search for text.

    Now the more complex stuff... you can add key:value pairs to the search and either find stuff that matches that type, or if you've provided some query you filter by that type.

    Examples:

    type:conversation

    car appreciation type:conversation

    The first is going to find all conversations, and the latter is only going to find conversations that feature the words "car appreciation".

    You can specify more than one type at a time.

    ice cream type:conversation type:event

    Great... all events and conversations that contain the words ice cream. But... WTF? Comments too?

    Unless you tell the system otherwise, it's currently searching comments that belong to conversations and events, in addition to the conversations and events. We might be interested in that, but we may not... we can restrict the keywords to just the title.

    ice cream type:conversation type:event inTitle:true

    Wonderful! Sweet sweet ice cream found.

    But what if there are a lot of results and you want the most recent on top?

    ice cream type:conversation type:event
    inTitle:true sort:date

    Now it's sorted by date, the most recently modified item is at the top.

    Great so now they're sorted using sort:date, but another angle... let's get those comments back (by removing the inTitle:true) and just find the comments that @Howard has made about ice cream. He loves ice cream.

    ice cream type:conversation type:event
    sort:date authorId:59083

    Now we have every comment, by @Howard on about ice cream, in every conversation or event that he's mentioned ice cream, sorted by the most recent date.

    Another key:value that is available is following:true. Which will only return the stuff you're following. So if you happen to be into planes and have following the conversation about planes then the quickest way to get to the conversation might be:

    planes following:true

    Or you might be interested in Bob Jackson's for sale, so it makes sense to restrict the search for Bob Jackson's to the titles of things in the Complete Bikes and Frames forum and to sort them by date (most recently modified is always first).

    Bob Jackson inTitle:true forumId:548 sort:date

    That's a load of bikes. But maybe we only really want adverts in the last year as those are the only ones you're likely to get a lead on?

    Bob Jackson inTitle:true forumId:548 sort:date since:365

    The since value is the number of days in the past... so 365 gives us a year.

    But we can play with that... maybe we want to use search to get a "Today" view of the forum?

    type:conversation type:event type:profile type:huddle since:1

    That's every conversation, event, profile and private message that you're allowed to see that has been modified in the past 1 day... i.e. today.

    Note that searches only show you what you're allowed to see, so you can search for private messages and will only ever see the ones you're allowed to see.

    What have I missed? Search within conversation!

    sweet type:comment type:conversation id:253146

    And of course you can add author to that mix:

    sweet type:comment type:conversation id:253146 authorId:47686

    Which now finds all comments that contain the word "sweet" within conversations that have the id of 253146 and in which the comments are authored by 47686 (me).

    The list of keys you can use:

    • inTitle: true = only search for search words within the title. This makes no sense if you aren't using search words.
    • forumId: a number, has to be the id of a forum (visible in URLs to forums)
    • type: a string... can only be one of conversation, event, microcosm (meaning forum), profile, comment, huddle (meaning private message). You can provide more than one type in a query
    • id: a number, has to be the id of something, only makes sense when you have added some type
    • authorId: a number, the id of a profile
    • following: true = only find things you are following
    • since: a number, the number of days in the past you want to restrict this search to, -1 = since yesterday, -365 = since last year. You can also use a date in ISO format such as 2014-01-01 for all things since 1st Jan 2014
    • until: a number, the number of days in the past you want to restrict this search to, but greater than since... helps find posts made between 1 year and 6 months ago, -1 = until yesterday, -365 = until last year. You can also use a date in ISO format such as 2014-01-01 for all things before 1st Jan 2014
    • sort: allows you to order the search word based queries by date, sort:date is the only valid value for general searches, and this only makes sense when you are searching by search words as it will sort by relevancy by default. If you are only searching one type and that is type=event then you also have the option to sort:oldest or sort:newest... those will order the events by oldest first or newest first
    • eventAfter: If you are only searching one type and that is type=event then this allows you to only show events happening after a given date. This can be a number relative to now, in days, i.e. 1 = after tomorrow, -7 = after a week ago, or it can be a specific date in ISO format: 2014-08-01 for events after the 1st August 2014
    • eventBefore: If you are only searching one type and that is type=event then this allows you to only show events happening before a given date. This can be a number relative to now, in days, i.e. 1 = before tomorrow, -7 = before a week ago, or it can be a specific date in ISO format: 2014-08-01 for events before the 1st August 2014
    • has:attachment: Will only show comments that have attachments.
  • Sweet,

    Is there a list of all the keys? I am now aware of AuthorID: and type:

  • Regarding the option to search posts made by particular users, like the ability to mention somebody in a comment , prefacing it with an @ bringing up a list of users. Could this be possible within the search bar? I'm concious that searching for the user first, to establish their AuthorID, would be a ball-ache to do.

  • Eventually.

    Right now I'm focusing on the engine itself to make sure it can do stuff.

    High on the list is making sure I can power a "Today" page.

    Then I need to fix the broken search page as searching within resultsets risks losing some of your search query right now.

    But after all other things... I'll definitely get around to adding polish so that you can just @ people in the search box.

  • Nice. Cheers for the How-to.
    What about excluding results?

  • What about excluding results?

    Narrow the search.

    Or did you mean ignore? We haven't built that yet. Ignore will be extremely effective when it arrives.

  • Ignore will be extremely effective when it arrives.

    I am liking the sound of this.

  • If you want to live good and prosper on the beautiful microcosm concept, retards and average joe may not fancy your search input code system.

  • That's OK, the search form will make it easier and the defaults for what happens when you just type in the box will change

  • @Velocio

    I think I can see the potential power of this search engine, but most people will not remember how to enter advanced searches.

    Average people probably would like boxes to put words into.

    So boxes for date, conversation, event along with the main search.

  • I showed your post to my other half who reacted that it was too complicated and not at all intuitive. Users should not have to learn how to search or use microcosm, it has to feel intuitive rather than give the impression you need specialist knowledge or skills to participate.

  • very very cool!

  • This is awesome for developers and power users. For normal humans who spend their time outside talking to other normal humans and doing normal human things instead of sitting in darkened basements learning all the shortcuts, it's less so.

    That's OK, the search form will make it easier and the defaults for what happens when you just type in the box will change

    I really hope that this will be the case, because as it is right now it is dizzyingly complex. And I'm saying this as a developer. Only a very small number of people are going to read that explanation of "how to search", the rest of them are going to be constantly going "how do I search?" and then "I don't have time for this". Of those that do read it and take it in, they're going to have to think about how to do something that should be automatic, which is in flagrant breach of Krug's First and Second Laws of Usability.

    But obvs it's a work in progress and I'm looking forward to seeing your solution.

  • I do like the 2 tier access of microcosm. Seems you can get around intuitively (which was the initial point of the project -you know tumbler for forums where 'they take care of the tech:)

    yet those who can seem to able to use more advanced coding. The op wasn't intended for your other half @dancing james or for me

  • (I forgot how to add a space to your name DJ to mention you -the irony)

  • @skydancer if you type @dan it should be prepopulated with my name

  • Seems you can get around intuitively... the op wasn't intended for your other half @dancing james or for me

    Clearly not, but how, intuitively, can you (you, personally) now search a specific thread for a specific term? The answer, right now, is that you can't. You need to learn all that stuff in the OP to be able to achieve that, or you can get used to never being able to use search in that way.

    This is why I'm hoping Velocio's hint that "this will be easier" does actually work out that way. If it doesn't, then you'll be shut out of being able to do some pretty basic things because you lack the ability to speak the Shibboleth.

  • True though I do speak fluent שִׁבֳּלִים (Shibboleth) -Lovecaftian term no?

  • In time, it would be cool to see some kind of natural language veneer over this.

    "Bottom bracket in conversations that were started by howard in the last week in the members forum"

  • Lovecaftian term no?

    No, biblical. Book of Judges. Tut.

    In time, it would be cool to see some kind of natural language veneer over this.
    "Bottom bracket in conversations that were started by howard in the last week in the members forum"

    Love the idea of that, that'd be very nice.

  • Lovecraft is suddenly getting a lot of rep around here.

  • Much power, much confusion. Dizzyingly complex.

    "Code", if that is what it's called, is not a language the average user of a microcosm forum should be expected to learn in order to find their favourite threads quickly, imho. I'm with the moaners, but optimistic with it.

  • I enjoyed the fact that people could get to a point where they wanted to search something really specific, and would have to do a really specific search to find this thread to find out how to do the really specific search.

    Really though, I think once you know the keys, it's not so bad

  • Jesus. Just give me some check boxes I can mark off with my search criterias.

  • This^

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

The things you can do with search

Posted by Avatar for Velocio @Velocio

Actions