Rocket.chat: Global search across channels

Created on 10 Dec 2015  路  77Comments  路  Source: RocketChat/Rocket.Chat

As far as I can tell, search right now functions on a per-channel basis. Is that true? Is there a way to search all chat history globally? This seems extremely useful, and probably not hard to implement.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Request

Most helpful comment

I am getting to the point of desperation now. I am incredibly happy with RocketChat, it's superb in so many ways, but I have a team of 25 and I am getting almost daily complaints about the lack of a global search with people telling me it is costing them a huge amount of time as they search through multiple channels one by one looking for a particular message. This problem only gets worse the more we use the program and the more channels and messages we have.
I will increase my bounty offer if someone will sort this.
Surely there are some other people out there who would be willing to join me in offering a bounty?

All 77 comments

I was going to ask the same... It's really a must.

+1 Most of the competing products offer this useful feature.

+1

+1

Same here ! We've been asking ourselves "where it could be" without even thinking it was not an existing functionality...

That's a real drawback I'm pretty sure the awesome team here will take care of ! Many thanks for your good work guys ;)

+1

+1

+1

+1

+1

Seems like a pretty important feature... I'm surprised it doesn't exist.

+1

+1

+1

+1

+1

+1

+1

+1

+1

Just looking for how to activate this functionality, I find this issue. So please, think about it :)

+1 - Really, really need this function.

+1

+1

+1

+1

+1

+1

As much as I appreciate all the +1 it doesn't seem as if a developer is willing to introduce this feature, right?

+1

+1

What will be cost of developing global search feature.

Maybe it would help for us to clarify WHY we want a global search. I have a use case that is probably different from everyone else. I am using the chat app as a digital notebook. Accessible across devices. Interactions can add clips of data. Replace Evernote and the ilk. I am a team of one. Each room/channel is another subject. Posts to that subject contain text, video, audio, images and files. Currently I am using Mattermost but I think RocketChat would be better. But only if I can get global search. Otherwise, it won't work. The model I'm using is based on the blog post by Tarun Gangwani titled "Using Slack as a Digital Notebook". http://www.tarun.info/prototype/2015/11/06/using-slack-as-a-digital-notebook/

+1

+1

Another +1. Sometimes a message is put in the wrong channel, or it could have been in one of several channels. Having to click each plausible channel and search each one is not a usable solution when the number of channels is more than a handful...

+1

+25 I ran it past our team of 25 who are using RocketChat and our combined opinion is that the lack of a global search is a 'deal breaker'.

Hello. I'd like to implement that feature, that bounty is still relevant?

https://www.bountysource.com/issues/28998888-global-search-across-channels

I would be happy to pay a bounty of $200 to get this feature implemented.

@timandovo Feel free to increment the bounty :)
I'm looking forward to work on this

Is there anybody else in this thread willing to contribute towards the bounty?
There are a huge number of us who see this as a vital feature, let's get it sorted!!!

+1

This is such a fundamental feature that causes daily pain. Is there anyone else able to join me in offering a bounty in order to get this job completed?

Likewise would like such a feature. Have been considering just writing a utility to handle it. What's the blocker here?

I am getting to the point of desperation now. I am incredibly happy with RocketChat, it's superb in so many ways, but I have a team of 25 and I am getting almost daily complaints about the lack of a global search with people telling me it is costing them a huge amount of time as they search through multiple channels one by one looking for a particular message. This problem only gets worse the more we use the program and the more channels and messages we have.
I will increase my bounty offer if someone will sort this.
Surely there are some other people out there who would be willing to join me in offering a bounty?

+1

+1

+1

+1

Been with Rocket.Chat a week, and we're starting to need this already.

If implemented, it would be nice to have a way of restricting the search to one channel too.

thus, not using rocket chat anymore.

+1

I guess this feature is delayed is because it is not easy as it is in terms the work load involved which more than 5 days in my estimation.

1- 2 Days for the underneath part where you verify what channels the current users have access to, then just loop all the channels based on the keyword to do the search which is already implemented. I think the hard part is the User Interface. Which is another 1-2 days. This search bar might just reside at the top then, another page to present the results, and you can jump into the resulted channel where the message is in history. I will give another Day for testing.

For these amount of work, let alone the idea about the framework and wiring things around the existing code base, I would say current 500 USD bounty is too low. Anyone would want to take it on is a hero.

If this feature is difficult to program, what would be useful is if the search string persisted across channel changes. Then it would be as hard to search several channel manually. I don't know if that's difficult to do.

It guess it's pointless to write "+1" for this issue. There are around 1800 open issues for rocketchat am and only 6 of them have slightly more comments than this one.

+1 and I added some dollars to the bounty. Gogogo

+1 and I added some dollars to the bounty too.

Anyone else willing to add some dollars to the bounty so that we can finally get this implemented?

https://www.bountysource.com/issues/28998888-global-search-across-channels

@jusfeel actually it's not a big deal, I tried this just now, apart from https://github.com/meteor/meteor/issues/8057 issue, everything else is very straightforward.

The way it's currently done is: client sends roomId to server, I changed it to send null in this case (of course without breaking existing stuff by using optional parameter), on server it's checking if user has access to that channel (which might be null in our case).

When searching for entire conversation, I first select all room user has access to, then search for the messages in those rooms.

It's pretty straightforward upto now. What remains is: when we display the result, right now we can just click on hand arrow and it shows in that channel, now it should navigate away from that channel, since this is the first time I've touched meteor, I'll need a little time for this part :)

Any suggestions are welcome :)

searching and displaying is done, now all I need to do is to show the message when clicked.

This is my first time trying to do meteor and this template, if someone familiar with this, I just need to change the current room. any suggestions welcome :)

Anybody else willing to upgrade the bounty, I just added $200 - https://www.bountysource.com/issues/28998888-global-search-across-channels

+1

I have somehow-working solution on my fork (https://github.com/savikko/Rocket.Chat.git), please clone and test and share your experiences with that.
Comments to PR #7628.

+1

@Marx1st

Thanks for adding your vote. If you can, please add to the bounty so that we can finally get this in place - Bountysource

The bounty is now nearly $800, and someone has had a solution ready for testing since August. Can someone please tell me what's stopping this from happening?

Reason for not happening from my side has been global busyness :)
But, I have to look at this (again), what this now needs is to merge current development to my branch and then implement global_search_enabled -type boolean to admin settings. I'll look at this in coming days, first thing is to find out how settings are implemented on Rocket.Chat.

Hi Savikko
Great to get such a positive response from you.
You should talk to Rodrigo Nascimento and Theo Renck from the RocketChat team, Rodrigo has told me that they would like to add global search as soon as possible now.

Thanks for your kind words.
And just to add, while I deeply understand that global search (with its current implementation) can cause major performance issues in some environments, it should be decideable by admin to enable it or not.

Hi all!
As you can see I created a Pull request which allows to use either the current Mongo Search or an external Search Service based on Apache Solr (which can be used either as Service or as on-site installation).
It is just a first test but I'd love to improve it based in your feedback!

I just tried the beta, seems to work ok, but our team is small, so not likely to have performance issues. Thank you for doing this, @savikko .

@savikko Bug: If I scroll through the list of global search results, if I scroll to the very end, the list suddenly reverts to the current channel only.

@savikko Feature: The search results are updated as I type the search string. Should they also update if I tick or untick the Global Search option?

@pshute : I'm not alone here doing this, thanks @cyberhck for starting this and @rodrigok for getting it running.
I have tried this on our rather small environment (about 100 users, 200k total messages), performance hasn't been an issue.

Search update (un)ticking option is not implemented at the moment, it should be done at the same time as layout of the checkbox would be changed. I wouldn't mind if there would be "loading" spinner when searching.

I can confirm that when scrolling (until the paging triggers) to the bottom, paging does not recognize that global search was chosen.

Aloha!

Firstly, I want to thank everybody that worked on this great feature, I'm using it and it works like a charm.
I'll be posting info about performance once my msgdb gets big enough to considerate it. BTW, regarding to performance, @savikko could you comment what hardware is supporting your installation (~100 users/ 200k msgs)?

In second place, I wanted to make a consideration that is also related somehow to performance but it's more about usability...
By default when you enable global search, and hit the search button in any channel, the checkbox to search globally is ticked, woudln't make more sense to have it disabled by default?
I guess you usually expect to search in current channel instead of globally; and it could save a lot of computing resources that might be used by miseducated users :)

Our current setup:
app server: 4cores, 8G RAM.
mongodb: Mongo Atlas (mongo as a service), 2G RAM, 0.2vCPUs.

Many thanks @savikko!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Buzzele picture Buzzele  路  3Comments

amayer5125 picture amayer5125  路  3Comments

brendanheywood picture brendanheywood  路  3Comments

neha1deshmukh picture neha1deshmukh  路  3Comments

engelgabriel picture engelgabriel  路  3Comments