1

I have hundreds of documents and each document has several pages. A user can search within a document for a word or sentence. Now I am expecting all the files in return which contain the searched text.

Currently using rest APIs with Angular as front-end.

I have just checked Elastic search.

and

Redisearch Full text search

I like redisearch search but I am not sure how much secure it is because it first creating indexes on actual data.

My point is:

  1. What are the pros and cons of using these two search methods.
  2. Will they work if file is encrypted
  3. Is there any other framework that provide very secure encrypted document and also search on Actual data while file is encrypted(Obviously first decrypt and then search on the fly)
Ben P
  • 197
  • 2
  • 15
  • I don't have any experience with the mentioned technologies, but as a point of interest, decrypting and then searching every document in an arbitrarily large set is not at all practical. I suspect there is a trade-off here that you may have to make. – Luke Joshua Park Jun 19 '19 at 21:59
  • Yes you are right it will be an overhead on the system. Most of these framework do optimize search based on the index. Index should be of actual data. – Ben P Jun 20 '19 at 11:02

1 Answers1

0

After so many days of going through Elastic search and Redis documentation this is my insight:

Redis and ElaticSearch for encrypted content

  • Redis Search is fast as compared to Elasticsearch however Redis Search have less community support. Elasticsearch tools like kibana, logstash are very helpful in viewing and analyzing data.

  • For encrypted content use redisearch with the NOINDEX option and store your primary data in an encrypted data store. For my case primary data store is s3 bucket. RediSearch only needs to store the inverted index.

  • AWS Elasticache provide lambda function that can create indexes of encrypted data at rest. The encryption is only on the data object at rest NOT on the metadata. Hence you can perform search on metadata but it will not be full text. For full text search pass data explicitly to Elasticsearch for indexing.

Check this link

AWS Cloud Search option

  • Another option is AWS cloud search. CloudSearch have capability to index items from buckets with server side encryption. You must pass over the proper credential to access data.

check this link2:

  • AWS cloudsearch is expensive though. They will charge for all the operation performed.
Ben P
  • 197
  • 2
  • 15