Given the massive amount of data and the fidelity of cloud servers, adequate security protection and efficient retrieval mechanisms for stored data have become critical problems. Attribute-based encryption brings the ability of fine-grained access control and can achieve a direct encrypted data search while being combined with searchable encryption algorithms.
Cloud and IoT 
services have become increasingly popular because of the rise in streaming services 
and the development of machine learning, especially in the era of COVID-19. Outsourcing data to the cloud saves space for local storage and brings convenience so that users can access and share their data without any space and time limitations. However, since cloud service providers, or cloud servers for short, are not fully trustable, directly uploading sensitive data to the cloud is dangerous and undermines user privacy. Encrypting data and then uploading them seems a safer approach. Nevertheless, in many situations, traditional public key encryption (PKE) 
schemes can only achieve secrecy but lack proper access controllability. For example, in some cases, we want to authorize files to only a specified group of people. Under PKE, we must copy files many times and encrypt them, respectively. Moreover, the management of secret keys is increasingly cumbersome and difficult. This challenge is specifically severe for medical and financial data because users have the right to decide who can review their sensitive medical and financial records. With attribute-based encryption (ABE) 
, we can make fine-grained access control much more manageable by only allowing some people with specified attributes (i.e., conditions) to access and view the files.
In addition to the access control, how to fetch the required data rapidly among the massive data stored in the cloud is also a critical issue. Downloading and decrypting all the data and then performing a search can reach the target, but it is not feasible because a massive amount of computation and storage is required on the user end. Apart from the excessive time overhead, these operations may be unsafe. Searchable encryption (SE) algorithms 
bring reasonable solutions to this problem. Go a step further; combining the ABE and SE schemes allows users to have fine-grained access controls and searching capabilities regarding encrypted data.
Many searchable attribute-based encryption schemes (ABS) 
have provided fine-grained access control, dynamic updates, and attribute revocations. However, searching capabilities could be more potent in most schemes to fulfill actual needs. Usually, they can embed only a single keyword into ciphertexts, which could be inconvenient and make searching more cumbersome. Although some schemes allow for combining multiple keywords and provide ranked search results, users can only fetch files containing all the keywords. More complicated relationships between keywords such as disjunctive logic “OR” can usually not be expressed. In addition, some advanced designs in searchable encryption algorithms have rarely been implemented on such systems.
2. Attribute-Based Encryption
Attribute-based encryption (ABE) is a technique that allows data owners to declare their access policies such as: “(Doctor OR Researcher) AND (Chest OR Surgery)
”. Only data users who meet the policy’s attribute requirements are qualified to access the files. For instance, users with the attributes “Doctor and Surgery” can read the text, but ones with “Doctor and Researcher” cannot. Most ABE schemes can be categorized into the following two classes: ciphertext-policy attribute-based encryption (CP-ABE) and key-policy attribute-based encryption (KP-ABE). Wang et al. 
proposed a constant-size ciphertext KP-ABE scheme, while Water et al. 
proposed the first practical CP-ABE scheme. The main difference between KP-ABE and CP-ABE is that CP-ABE puts the access policy into ciphertexts while KP-ABE puts it into the users’ secret keys. In CP-ABE schemes, data owners can easily decide who can access the files, so it is more suitable for cloud storage applications. Hence, the researchers adopted it to construct the systems. Over time, more powerful ABE schemes have been developed. Li 
proposed an attribute-revocable scheme, and Chi et al. 
proposed a policy-hiding scheme to protect data owners’ privacy further. In addition, most ABE schemes involve bilinear pairing operations, which are very time-expensive, especially for resource-restricted devices such as mobiles and IoT devices. Han et al. 
proposed a decentralized scheme to reduce the burden of data users by outsourcing the corresponding computational tasks.
3. Searchable Encryption
The main characteristic of searchable encryption (SE) is it allows users to search over many encrypted data without the decrypting of the documents in the dataset. High-level concepts of SE are that data owners extract keywords from plaintext files to build a “Secure Index” and then encrypt plaintexts with symmetric encryption schemes. Data owners transform searching keywords into corresponding trapdoors afterward. Finally, cloud servers match the Secure Indexes with the trapdoors to produce search results containing the target keywords the user longs for.
For this purpose, there are many ways to build the pre-described Secure Index. Most of the existing SE schemes involve calculating the term frequency-index document frequency (TF-IDF) values of keywords. Cao et al. 
and Tzouramanis et al. 
both use the K-nearest neighbors (KNN) method to build the Secure Index. It is effective; however, the associated neighborhood-related matrix will be too large, and therefore, the associated operations become time-consuming when too many keywords are involved in the system. Other methods include secure random masking, tree-based, and secure linked-list ones. The scheme proposed by Zhang et al. 
used the secure linked-list method to build an index table, which the researchers also adopted in the work for its efficiency.
Many functional search schemes have been developed to provide a more powerful search capability. For example, Wang et al. 
proposed a tree-based method to provide range search. It is especially suitable for numerical datasets such as financial records. Aritomo et al. 
and Fu et al. 
both achieved semantic-based searching, while Zhang et al. 
provided an efficient predicate search. Liu et al. 
proposed a robust scheme combining semantic and fuzzy searches using fingerprint methods, which will also be adopted in the schemes. However, this scheme did not take any access control mechanism into account. They used fully homomorphic encryption (FHE) schemes 
to encrypt the index table instead. Due to complexity considerations, the researchers' work has not considered FHE schemes in the current system implementation. However, FHE schemes have lots of potential for constructing effective ABE schemes if the required complexity can be handled properly. An FHE-based ABE approach is exciting and can reduce the storage requirement of ciphertexts. The researchers choose to put it into the future investigations.
4. Searchable ABE Schemes
Many ABE schemes have searching abilities. For this kind of scheme, it is crucial to allow only the qualified files to be searched. Otherwise, malicious users may launch keyword attacks to guess the contents of files and breach privacy. On the other hand, it is a waste of time for users to decrypt those unqualified files with failure. Sun et al. 
proposed a famous searchable attribute scheme (ABKS) to hide the access policy. However, they use AND GATE as the access structure for policy hiding, which limits the access policy’s expressiveness. Wang et al. 
proposed a scheme that is aimed at E-health applications. They achieve a constant computational overhead, constant storage overhead, and policy hiding by hashing user attributes and keywords. However, the access policy’s flexibility and searching are restricted due to its data structures. Moreover, they directly embed keyword hashes into ciphertexts, so it takes much time to match search results when there are many files in the dataset or only a single keyword can be used at a time. Miao et al. 
and Sun et al. 
proposed ABKS schemes with the ability for attribute revocations. Nevertheless, the searching capabilities of these schemes are weak because users can only use a single keyword once without any modifications to protocols.