We propose an XML search engine called KSRQuerying. The search engine employs recursive querying techniques, which allows a query to query the results of a previous application of itself or of another query. It answers recursive queries, keyword-based queries, and loosely structured queries. KSRQuerying uses a sort-merge algorithm, which selects subsets from the set of nodes containing keywords, where each subset contains the smallest number of nodes that: (1) are closely related to each other, and (2) contain at least one occurrence of each keyword. We experimentally evaluated the quality and efficiency of KSRQuerying and compared it with 3 systems: XSeek, Schema-Free XQuery, and XKSearch.