With the growing popularity of mobile devices and the advance in geo-positioning technology, location-based services (LBS) are widely used and spatial keyword query becomes increasingly complex. Clients may have special requests on numerical attributes, such as price, in addition to the location and keywords.
Consider some spatial objects in Fig. 1(a), where dots represent spatial objects such as restaurants, whose keywords and three numerical attributes are listed in Fig. 1(b). Dots with the same color own similar keywords, e.g., red dots share keywords about food. The triangle represents a user issuing a query to find a nearest restaurant serving pizza and steak with low level in price, noise, and congestion. At a first glance, seems to be the best choice for the close range, while surpasses in the numerical attributes obviously. This common situation shows that such complex queries deserve careful treatment.
Extensive efforts have been made to support spatial keyword query. However, prior works [7, 9, 15] mainly focused on the keywords of spatial objects but neglected or failed to distinguish independent numerical attributes. Recently, Sasaki Y.  schemed out SKY R-Tree which incorporates R-tree with skyline algorithm to deal with the numerical attributes. However, it does not work well for multi keywords, which reduces their usage for various applications. Liu X.  proposed a hybrid index structure called Inverted R-tree with Synopses tree (IRS), which can search many different types of numerical attributes simultaneously. However, the IRS-based search algorithm requires providing exact ranges of attributes which is a heavy and unnecessary burden to the users. What’s more, the exact match in in attributes can also lead to few or no query results to be returned.
Correspondingly, in this paper, we named and studied, for the first time, the attributes-aware spatial keyword query (ASKQ). This complex query needs to take location proximity, keywords’ similarity, and the value of numerical attributes into consideration, that is respectively, the Euclidean spatial distance, the relevance of different keywords, and the integrated attributes of users’ preference. Obviously the ASKQ has wide apps in the real world.
Tackling with the ASKQ in Example 1, common search algorithms [7, 9, 15] ignoring numerical attributes may retrieve finally indiscriminately, and SKY R-Tree-based algorithm may return as one of results, and IRS-Tree-based algorithm may retrieve no objects when the query predicate is set as “ & & ”. Apparently, none of these algorithms can satisfy the users’ need. These gaps motivate us to investigate new approaches that can deal with the ASKQ efficiently.
In this paper, we propose a novel two-layer index structure called Quad-cluster Dual-filter R-Tree (QDR-Tree) with query processing algorithms. In the first layer we deal with keyword specifically. Considering numbers of keywords share the similar semanteme and clients tend to query objects of the same class, we cluster and store the keywords in a Quad-Cluster Tree (QC-Tree) by hierarchical clustering algorithm using kernel -means clustering . With keyword relaxation operation and Cut-line theorem to avoid redundance, QC-Tree can balance search time and space cost well.
In the second layer we deal with spatial objects with numerical attributes. At each leaf node of the first layer, a Dual-filter R-Tree (DR-Tree) is attached according to two filtering algorithms, namely, keyword bitmap-based filtering and attributes skyline-based filtering, which effectively reduce the false positives.
Moreover, we also propose a novel method to measure the relevance of one spatial object with the query keywords. We measure the similarity of different keywords from both textual and semantic aspects. For the latter one, the term vectors
term vectorsthat are obtained by word2vec  are applied to represent every keywords, and therefore, the similarity can be quantified. Note that both queries and spatial objects usually own several keywords, a bitmap of keywords is used to measure the relevance between two lists of keywords lightly and efficiently.
Table 1 compares the current index with QDR-Tree in three aspects. Apparently, QDR-Tree outperform existing methods in tackling with the ASKQ, and can achieve great improvements in query processing time and space consumption. This will be demonstrated in both theoretical and experimental analysis. Massive experiments with real-data also confirm the efficiency of QDR-Tree.
|Index||From||location proximity||muti-keywords||fuzzy attributes|
To sum up, the main contributions of this paper are summarized as follows:
We formulate the attributes-aware spatial keyword query, which takes spatial proximity, keywords’ similarity and numerical attributes into consideration.
We design a novel hybrid index structure, i.e., QDR-Tree which incorporates Quad-Cluster Tree with Dual-filtering R-Trees and accordingly propose the query processing algorithm to tackle the ASKQ.
We propose a novel method to measure the relevance of one spatial objects with query keywords based on word2vec and bitmap of keyword.
We conduct an empirical study that demonstrates the efficiency of our algorithms and index structures for processing the ASKQ on real-world datasets.
The rest of the paper is organized as follows. Section 2 reviews the related works. Section 3 formulates the problem of ASKQ. Section 4 presents the QDR-Tree. Section 5 introduces the query processing algorithm based on the QDR-Tree. Three baseline algorithms are proposed in Section 6 and considerable experimental results are reported. Finally, Section 7 concludes the paper.
2 Related Work
Existing works concerning the ASKQ include spatial keyword search, keyword relevance measurement, and the skyline operator.
Spatial keyword search. There are many studies on spatial keyword search recently [7, 18, 17]. Most of them focus on integrating inverted index and R-tree to support spatial keyword search. For example, IR2-tree combines R-trees with signature files. It preserves objects spatial proximity, which is the key to solve spatial queries efficiently, and can filter a considerable portion of the objects that do not contain all the query keywords. Thus it significantly reduces the number of objects to be examinated. SI-index  overcomes IR2-trees’ drawbacks and outperform IR2-tree in query response time significantly.  proposes inverted linear quadtree, which is carefully designed to exploit both spatial and keyword-based pruning techniques to effectively reduce the search space.
Keyword relevance measurement. The traditional measurement on keyword relevance includes textual and semantic relevance. The textual relevance can be computed using an information retrieval model [5, 4, 19, 2]. They are all TF-IDF variants essentially sharing the same fundamental principles. The semantic relevance is measured by many methods. [13, 14] apply the Latent Dirichlet Allocation (LDA) model to calculate the topic distance of keywords. Gao Y. proposed an efficient disk-based metric access method which achieves excellent performance in the measurement of keywords’ similarity.
The skyline operator. The skyline operator deals with the optimization problem of selecting multi-dimension points. A skyline query returns a set of points that are not dominated by any other points, called a skyline. It is said that a point dominates another point if is no worse than in all dimensions of attributes and is better than at least in one dimension. Borzsonyi et al.  first introduced the skyline operator into relational database systems and introduced three algorithms. Geng et al. propose a method which combines the spatial information with non-spatial information to obtain skyline results. Lee  et al. focused on two methods about multi-dimensional subspace skyline computation and developed orthogonal optimization principles.
3 Problem Statement
Given an geo-object dataset in which each object is denoted as a tuple K, A, where is a location descriptor which we assume is at a two dimensional geographical space and is composed of latitude and longitude, is the set of keywords, and represents the set of numerical attributes. Without loss of generality, we assume the attributes in are numeric attributes and normalize each . We assume that smaller values of these numercial attributes, e.g., price and noise, are preferable. As for other numerical attributes’ values which are better if higher, such as the rating and health score, we convert them decreasingly as . The query is represented as a tuple , where and represent the location of the user and the required keywords respectively, and represents the set of weight for different numerical attributes and user’s different preference on these attributes. and . The reason for assigning weight to each attribute instead of qualifying exact range of attributes is to prepare for the fuzzy query on numerical attributes. In order to elaborate the QDR-Tree , we firstly define the keyword distance and the keyword cluster as follows.
Definition 1 (Keyword Distance)
Given two keywords , their keyword distance, denoted as , includes both textual distance and semantic distance. The textual similarity between two keywords is denoted as which is measured by the Edit Distance. The semantic distance between two keywords denoted as is measured by the Euclidean distance of the term vector generated by word2vec. With a parameter controlling their relative weights, Eqn. (1) describes the formulation of .
Definition 2 (Keyword Cluster)
A keyword cluster () is formed by similar keywords. The cluster diameter is defined as the maximum keyword distance within the cluster. One keyword can be allocated into the cluster if the diameter after adding it does not exceed the threshold , i.e. . Each cluster has a center object denoted as . All the keyword clusters () make up the set of keyword clusters ().
Definition 3 (Attributes-Aware Spatial Keyword Query)
Given a geo-object set and the attributes-aware spatial keyword query q, the result includes a set of ,111Hereafter, Top- is denoted as Top- to avoid confusion with the -means algorithm. , and , it holds that .
In this section, we introduce a new hybrid index structure QDR-Tree, which is a new indexing framework for efficiently processing the ASKQ. The QDR-Tree can be divided into two layers, the keyword cluster layer and the spatial layer where the QDR-Tree can be split up into two sub-trees, named as Quad-Cluster Tree (QC-Tree) and Dual-filtering R-tree (DR-Tree) respectively.
4.1 Keyword cluster layer
The keyword cluster layer deals with keyword search with both textual and semantic similarities. Neither appending an R-Tree to each keyword with a huge space redundancy, nor just clustering all keywords into groups with a high false positive ratio during query search, QC-Tree smartly splits keyword set into hierarchical levels and link them by a Quad-Tree.
To improve the searching efficiency, we propose a new hierarchical quad clustering algorithm based on the kernel -means . Compared with the traditional -means clustering, kernel
-means will have better clustering effect even the samples do not obey the normal distribution and is more suitable to cluster the keywords. Moreover, different from the common clustering, hierarchical clustering can form a meaningful relationship between different clusters, which is helpful to allocate a new sample and decrease the cost of misallocation. After the clustering process finishs, a quad-cluster tree (QC-Tree) is used to arrange all of these clusters, which is the core composition of the keyword cluster layer. In Alg.1, the critical part is applying the kernel -means to each keyword cluster per level, with fixed as . Furthermore, when the diameter of the keyword cluster is smaller than the , the duplication operation is executed, which is presented in Alg. 2 and will be discussed later.
Fig. 2(a) illustrates the hierarchical clustering in Alg. 1, where each dot represents a keyword and different aggregation of these dots presents different keyword clusters. The dots marked in different color are the centroid of these clusters, and moreover, same color denotes their clusters stay in the same level.
Notice that, the main target of QC-Tree is to improve the pruning effect of keywords while making the future query keyword set located in only one keyword cluster. As is shown in both Alg. 1 and Fig. 2(a), with the cluster level growing, the cluster will be more centralized and compact. That means the possibility of one query being allocated to different clusters increases layer by layer. It is necessary to decide an optimal to terminate the hierarchical cluster proceeding, if not, there would only be a single keyword in each cluster finally. The basic structure of QC-Tree is displayed in Fig. 2(b), where each internal node keeps the centroid keyword () and four pointers (4p) to its four descendants nodes, and each leaf node will keep the keyword set in this cluster and the pointer to a new DR-Tree. Additionally, a cut-line is drawn to emphasize the shift of index structure, which is mainly dependent on the value of .
As is analyzed above, the leaf cluster is where a query would most likely be scattered into different clusters. We will take a keyword-relaxation operation by duplicating some keywords among the four clusters sharing the same parent node. In Fig. 2(c), for a keyword cluster, its keywords are grouped into four sub-clusters and the duplication operation need to be executed. The dots in the shadow represent the keywords that will be duplicated and allocated to all of these four sub-clusters because they are closed to all of the sub-clusters. Here, we introduce another threshold () to decide whether to execute the duplication operation. Although this keyword-relaxation operator will cause redundancy of keywords and extra space consumption, it will largely improve the time efficiency, which will also be demonstrated in the experimental verification.
4.2 Spatial layer
Under each keyword cluster in the bottom of QC-Tree, we build a DR-Tree based on dual-filtering technique to organize the spatial objects in this cluster.
In Fig. 3, a basic structure of DR-Tree is shown in the spatial layer. Each internal node records a two-element tuple: . The first element stands for the skyline points of the numerical attributes of all objects in the subtree rooted at the node. The second element is a bitmap of the keywords included in this cluster, which uses 1 and 0 to denote the existence of keywords.
4.2.1 Keyword bitmap filter algorithm:
In the DR-Tree, each node just records the keyword bitmap, and then the specific keywords list is kept only in the leaf keyword cluster. Then, the keyword relevance can be calculated just by Bitwise AND within the pair of bitmaps, which can decrease the storage consumption and increase the query efficiency.
Because bitwise AND within bitmaps need an exact keywords matching, in order to support similar keyword matching, we also implement the relaxation in each query process. In Fig. 3, as is highlighted in blue, the bitmap of query keywords performs a search-relaxation by switching some 0-bits to 1-bits based on the keyword similarity The search-relaxation algorithm will be proposed in Alg. 4 in Section 4.2.1.
4.2.2 Multidimensional subspace skyline filter algorithm:
In order to satisfy the needs of user’s intention on multiple attributes, a filter called Multidimensional Subspace Skyline Filter, which is inspired by [8, 1], is employed to amortize the query false positive and the cost of computation. We use the Evaluate() algorithm proposed in  to gain the multidimensional skyline points efficiently, and then let every QC-Tree node record the skyline points of its descendants. Furthermore, in order to reduce the complexity of recording multidimensional skyline points, we will take the point-compression operation by merging the closed skyline points in the attributes space. We calculate the cosine distance between skyline points’ attributes to measure the similarity, and then merge these closed points when cosine distance is larger than a threshold.
5 QDR-based Query Algorithm
In this section, we will introduce the ASKQ processing algorithms based on QDR-Tree. The process includes finding the Leaf Cluster, making search-relaxation and searching in the DR-Tree.
Find the leaf cluster The leaf keyword cluster that is best-matched with can be obtained by iteratively comparing with the four sub-clusters in each cluster level. If the combination of keywords in the query is typical and can be allocated into the same cluster, only one keyword cluster will be found. Otherwise, more than one keyword cluster may be returned.
Search-relaxation As is stated in Section 4.2.1, by means of executing search-relaxation, bitmap-based filter can support similar keyword matching. In Alg. 4, a bitmap of relaxed query keyword is obtained by switching 0-bit to 1-bit if their keyword distance is under a threshold. By adopting a rational threshold, we can make a good trade-off between time cost and space occupation.
Alg. 5 illustrates the query processing mechanism over QDR-Tree. Given a query , the object retrieval is carried out firstly by traversing the QC-Tree to locate the best-matched keyword cluster. Secondly, after executing search-relaxation, it will traverse the DR-Tree in the ascending order of the scores and keep a minimum heap for the scores. Notice that, if more than one keyword cluster is located, it will traverse all of them. At last the Top- results can be returned.
The ranking score of an object for ASKQ is calculated by Eqn. (2). Here, are parameters indicating the relative importance of these three factors. is the Euclidian distance between and . The is the maximal spatial distance that the client will accept. which represents the keyword relevance between and is determined by the result of Bitwise AND between their keyword bitmaps. The smaller the score, the higher the relevance.
What is more, the score for non-leaf node can also been measured to represent the optimal score of its descendant nodes, which is defined as Eqn. (3)
where the represents the minimum Euclidian distance between the N’s MBR and the is can also be calculated by the bitmap of keywords kept in this node. We can prove that Top is an exact result by the Theorem 5.1. If the score of the internal node dose not satisfy the ASKQ, there is no need to search its descendant nodes. Hence, the final Top- objects will have the least scores.
The score of an internal node N is the best score of its descendant object to the query .
the score factors in location proximity, keyword relevance and non-spatial attributes’ value. First, the MBR of the N encloses all of its descendant objects, then descendant objects of N, . Second, the keyword bitmap includes all of the keywords existing in the descendant objects of . Obviously, . Finally, the skyline points dominate or are equal to all of descendent objects concerning the value of attributes, i.e., . All these inequalities contribute to that .
6 Experiment Study
6.1 Baseline algorithm
In this section, we propose three baseline algorithms which are based on the three existing indexes listed in Tab. 1, including IR-Tree, SKY R-Tree  and IRS-Tree. As is discussed in Sec. 1, none of these existing indexes can be qualified for the ASKQ due to different drawbacks. The specific algorithm designs will be respectively explained in detail as follows.
Because the IR-Tree pays no attention on the value of numerical attributes, all spatial objects containing the query keywords and numerical attributes will be extracted. After that they will be ranked by the comprehensive value of numercial attributes. Eventually, the top- spatial objects are just the result of the ASKQ.
Different from the IR-Tree, the SKY R-Tree fails to support multi-keywords query because one SKY R-Tree can only arrange one keyword and its corresponding spatial objects, such as restaurant. In order to deal with the ASKQ, all of the SKY R-Trees containing the query keywords will be searched and merged to obtain the final top- results.
The last baseline algorithm is proposed based on the IRS-Tree which is originally intended to address the GLPQ. Unlike ASKQ, the GLPQ requires specific range of attributes to leverage the IRS-Tree. To copy with the ASKQ, we will firstly set some different suitable ranges of each attributes as the input, which insures that enough spatial objects can be returned. Afterwards, we will further to select top- objects from the results in the first stage. Apparently, in our experiments, the IRS-Tree will not make much sense anymore.
Notice that, all of these three baseline algorithms cannot solve the ASKQ directly at a time and need subsequent elimination of redundancy, which determines their inefficiency in the ASKQ.
In the experiment section, we conduct extensive experiments on both real and synthetic datasets to evaluate the performance of our proposed algorithms.
6.2 Experiment Setup
The real dataset is crawled from the famous location-based service platform, Foursquare. After information cleaning, the dataset has about 1M objects consisting of geographical location, the keyword list written in English, and the normalized value of attributes. Each spatial object contains the keywords such as steak, pizza, coffee, etc. and four numerical attributes, including price, environment, service and rating.
In the synthetic dataset, each object is composed of coordinates, various keyword, and multi-dimensional numerical attributes. The size of the synthetic dataset varies in the experiments. The coordinates are randomly generated in (0, 10000.0), and the average number of keywords per object is decided by a parameter which denotes the ratio of the number of object’s keywords to the cluster’s. Without loss of generality, the values of each numercial attribute are randomly and independently generated, following a normal distribution.
|4||No. of attributes’ dimension|
|0.5||Weight factor of Eqn. (1)|
|0.5||Weight factor of Eqn. (2)|
|0.67||Weight factor of Eqn. (2)|
|0.3||Threshold of quad clustering|
|0.05||Threshold of duplication|
|1M||Number of objects|
|25||Maximum number of DR-Tree entries|
We compare the query cost of proposed algorithms with different datasets respectively. The experimental settings are given in Table 2. The default values are used unless otherwise specified. All algorithms are implemented in Python and run with Intel core i7 6700HQ CPU at 2.60 GHz and 16 GB memory.
6.3 Performance Evaluation
In this section, we campare different baseline algorithms proposed in Section 6.1 with our framework. We evaluate the processing time and disk I/O of all the proposed methods by varying the parameters in Table 2 and investigate their effects. In the first part we study the experimental results on the real dataset.
Index construction cost: We first evaluate the construction costs of various methods. The cost of an index is measured by its construction time and space budget. The costs of various methods are shown in Fig. 5, where IRS refers to the baseline structure IRS-Tree, the SKY-R, IR refer to SKY R-Tree, IR-Tree respectively, and the QDR represents our design. We can see that, SKY R-Tree and IR-Tree exceed both in time consumption and space cost, because they are short of attention of either attributes or multi-keywords. Moreover, since we employ bitmap and skyline points to measure numercial attributes, QDR is more lightweight than IRS.
Effect of : We investigate the effect of on the processing time and disk I/O of the proposed algorithms by randomly generate 100 queries. Here, considering that the SKY R-Tree and IR-Tree do not take into account either attributes or keywords, we add a filter operation after their query process. For example, the SKY R-Tree returns Top- results of each keyword and merges them in the second stage. Obviously, this redundancy of result is the main reason of the high time cost. As shown in Fig. 5, with the increase of , IRS and QDR have the same smoothly increasing trend on query time and disk I/O. QDR exceeds in query time cost with different parameters. It indicates that we can effectively receive the Top- results from one branch to another.
Effect of : Parameter denotes the number of objects in the QDR-Tree, We increase the number of objects in the synthetic dataset from 0.1 to 5 M. It can be seen from Fig. 7(a)(b), that, SKY-R and IR have more obvious increases in query time cost and disk I/O when the data size increases, which can be explained because of their larger redundancy along with the larger dataset. On the other hand, the QDR is more stable and surpasses another three indexes.
Effect of : Parameter denotes the number of attributes the object covers. As shown in Fig. 7(c)(d), the query time and Disk I/O of the IR-Tree based on synopses tree has distinct increase, because it fails to consider the attributes, while another three frameworks are more stable, which is mainly because of either the skyline filter algorithm or the synopses tree.
Effect of & : and are the crucial parameters in our QDR-Tree, which are analyzed theoretically in Sec. 4. The experimental results also verify their effect on the Processing Time and Index Size. Fig. 6(a)(c) show that both and have an optimal value to minimize the processing time. Smaller or larger value will both increase the processing time because of keyword scattring or redundancy. In Fig. 6(b)(d), index size decreases as the becomes larger and reach saturation at some point, while it increases along with the because of the increase of keyword redundancy.
In this paper, we formulated the attributes-aware spatial keyword query (ASKQ) and proposed a novel index structure call Quad-cluster Dual-filtering R-Tree (QDR). QDR-Tree is a two-layer hybrid index based on two index structures and two searching algorithms. We also proposed a novel method to measure the relevance of spatial objects with query keywords, which applies keyword-bitmap and search-relaxation to achieve exact and similar keyword match. Moreover, by employing the keyword-relaxation, we greatly improve the time efficiency at the sacrifice of a little space consumption. Finally, massive experiments with real datasets demonstrate the efficiency and effectiveness of QDR-Tree.
-  Borzsonyi, S., Stocker, K., Kossmann, D.: The skyline operator. IEEE International Conference on Data Engineering (ICDE) pp. 421–430 (2002)
-  Cao, X., Cong, G., Jensen, C.S.: Retrieving top-k prestige-based relevant spatial web objects. International Conference on Very Large Data Bases (VLDB) 3, 373–384 (2010)
-  Chen, L., Gao, Y., Li, X., Jensen, C.S., Chen, G.: Efficient metric indexing for similarity search. IEEE Transactions on Knowledge and Data Engineering (TKDE) 29(3), 556–571 (2017)
-  Cong, G., Jensen, C., Wu, D.: Efficient retrieval of the top-k most relevant spatial web objects. International Conference on Very Large Data Bases (VLDB) 2(1), 337–348 (2009)
-  Cong, G., Jensen, C.S., Wu, D.: Efficient retrieval of the top-k most relevant spatial web objects. International Conference on Very Large Data Bases (VLDB) 2(1), 337–348 (2009)
Dhillon, I.S., Guan, Y., Kulis, B.: Kernel k-means: spectral clustering and normalized cuts. ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD) pp. 551–556 (2004)
-  Felipe, I.D., Hristidis, V., Rishe, N.: Keyword search on spatial databases. In: IEEE International Conference on Data Engineering (ICDE). pp. 656–665 (2008)
-  Lee, J., Hwang, S.: Toward efficient multidimensional subspace skyline computation. International Conference on Very Large Data Bases (VLDB) 23(1), 129–145 (2014)
-  Li, Z., Lee, K.C., Zheng, B., Lee, W.C., Lee, D., Wang, X.: Ir-tree: An efficient index for geographic document search. IEEE Transactions on Knowledge and Data Engineering (TKDE) 23(4), 585–599 (2011)
-  Liu, X., Chen, L., Wan, C.: Linq: A framework for location-aware indexing and query processing. IEEE Transactions on Knowledge and Data Engineering (TKDE) 27(5), 1288–1300 (2015)
-  Ma, G., Arefin, M.S., Morimoto, Y.: A spatial skyline query for a group of users having different positions. In: Third International Conference on NETWORKING and Computing. pp. 137–142 (2012)
Mikolov, T., Chen, K., Corrado, G., Dean, J.: Efficient estimation of word representations in vector space. Computer Science (2013)
-  Qian, Z., Xu, J., Zheng, K., Sun, W., Li, Z., Guo, H.: On efficient spatial keyword querying with semantics. International Conference on Database Systems for Advanced Applications (DASFAA) pp. 149–164 (2016)
-  Qian, Z., Xu, J., Zheng, K., Zhao, P., Zhou, X.: Semantic-aware top-k spatial keyword queries. World Wide Web (WWW) pp. 1–22 (2017)
-  Ray, S., Nickerson, B.G.: Dynamically ranked top-k spatial keyword search. ACM International Conference on Management of Data (SIGMOD) pp. 6–18 (2016)
-  Sasaki, Y., Lee, W.C., Hara, T., Nishio, S.: Sky r-tree: an index structure for distance-based top-k query. International Conference on Database Systems for Advanced Applications (DASFAA) pp. 220–235 (2014)
-  Tao, Y., Sheng, C.: Fast nearest neighbor search with keywords. IEEE Transactions on Knowledge and Data Engineering (TKDE) 26(4), 878–888 (2014)
-  Zhang, C., Zhang, Y., Zhang, W., Lin, X.: Inverted linear quadtree: Efficient top k spatial keyword search. IEEE International Conference on Data Engineering (ICDE) pp. 901–912 (2013)
-  Zobel, J., Moffat, A.: Inverted files for text search engines. ACM Computing Surveys (CSUR) 38(2), 6–21 (2006)