-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Search messages in conversation by keyword #675
Comments
I guess there is no ETA for this feature and no plans to ever implement it, but I'm willing to contribute the server code for it. |
Can you write up a proposal? Something along the lines of:
|
I was thinking about integrating something like Elasticsearch. |
In case of an external search provider I think the following is needed:
|
About the interaction between tinode and the search provider, there are two approaches to indexing:
For 1. there is the issue with existing messages. There needs to be a possibility to index all existing messages in case the index is lost, was just initialized, or any other reason. I think we should first decide if we are going to support more than one search engine and which one/s in particular. In my use case, supporting just Elastic is fine and it would make the implementation of this feature so much easier. |
I would separate the concerns of starting a new service from scratch vs upgrading an existing service with message search. I do see value of having Elastic or any other provider going to the DB directly. It also has drawbacks. For example, if we implement any sort of encryption at rest (a feature some people want) then the direct intake from the DB won't work.
I think there should be a choice. It does not need to be implemented immediately, a single provider is a good start. But there is value in an abstraction layer. Tinode is frequently used in organizations with an established infrastructure. If they use Solr or Algolia then it would be a harder decision if Tinode supports Elastic only. |
I guess with 'encryption at rest' you mean end-to-end encryption and not just server-side encryption. |
This is a useful feature. No need to close even if you don't want to work on it. I meant what I said: encryption at rest. |
What you said is not clear enough. You can have end-to-end encryption (clients have the encrypt/decrypt keys) or server-side encryption (the server has the encrypt/decrypt key). In both cases the data is encrypted "at rest". But one has access to the plain, unencrypted data on the server and allows you to search through it, the other doesn't. |
What about to use Full Text Search from Databases? With end-to-end encryption the search must be done in the client side |
Rethinkdb does not have it at all. Mongo has no support for CJK - it can't split words. FTS in all three databases is mostly useless for heavily inflected languages. So, it can be done for English with MySQL and maybe with Mongo but it will suck. |
Elastic or sphinx or solr is not a bad idea. |
Are there any planned release dates for the full text search and encryption in rest features? |
No. @ice-myles are you willing to help? |
No description provided.
The text was updated successfully, but these errors were encountered: