Research Article

A Multibranch Search Tree-Based Multi-Keyword Ranked Search Scheme over Encrypted Cloud Data

Algorithm 4

GenTree (L, μ).
Input: L; the threshold of the maximum number of child nodes, α
Output: the α-filtering tree, I
(1)for each Ci in L do
(2) Create a leaf node c for Ci. Assuming that Ci = {d1, d2, …, dx}, then u·PL = , u·DC = Ci, u·FV = UpBound{FV1, FV2, …, FVx}
(3) Add u into CNL; //CNL is a variable of the child node list and PNL is a variable of the newly generated parent node list
(4)end for
(5)if then
(6)return the only node left in CNL which is the root of the generated α-filtering tree
(7)end if
(8)while CNL is not empty do
(9)while CNL is not empty do
(10)  if then
(11)   Fetch the first α nodes {u1, u2, …, uα} from CNL and create a parent node u, where u·PL[1] = u1, u·PL[2] = u2, …, u·PL = uα, FV = UpBound{u1·FV, u2·FV, …, ·FV} and DC = ; then add u to PNL
(12)  else
(13)   Assuming that CNL = {u1, u2, …, }, , fetch all the nodes from CNL and create a parent node u where {u·PL[1] = u1, u·PL[2] = u2, …, u·PL = }, u·FV = UpBound{u1·FV, u2·FV, …, ·FV} and u·DC = ; then add u to PNL
(14)  end if
(15)end while
(16)if then
(17)  Move all the nodes from PNL to CNL and then set PNL empty
(18)else
(19)  break;
(20)end if
(21)end while
(22)return The only node left in PNL which is the root of the generated α-filtering tree