1. A system for providing recommendations to improve a query, comprising: a processor; and storage coupled to the processor, wherein the storage stores a computer program, and wherein the processor executes the computer program to perform operations, operations comprising: receiving a query with query keywords and selected categories; and in response to determining that the selected categories are ranked high with reference to query relevance indicator values for each of the selected categories, determining whether a lowest category level has been reached in the selected categories; in response to determining that the lowest category level has been reached, ranking individual services that are at the lowest category levels: and providing one or more high ranked services from the ranked individual services; and in response to determining that the lowest category level has not been reached, calculating a keyword relevance indicator of each keyword in the query for each subcategory of each of the selected categories, wherein the keyword relevance indicator for a keyword is calculated using a keyword frequency of the keyword and an inverse service frequency of a subcategory; calculating a query relevance indicator of the query with each subcategory using the retrieved keyword relevance indicators, wherein the query relevance indicator is generated based on a keyword relevance indicator of a keyword specified in the query and a keyword relevance indicator of a keyword in the subcategory that is not specified in the query; ranking each subcategory based on the query relevance indicators; and providing the ranked subcategories for use in selecting new categories to be submitted with the query.