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.
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. 5. The system of claim 1 , wherein the operations further comprise: identifying query keywords having low keyword relevance indicator values for non-top-ranked selected categories and having high keyword relevance indicator values for top-ranked, but un-selected categories; from the identified query keywords, identifying the query keywords for which synonyms are not identified; and providing a recommendation that the query keywords for which synonyms were not identified be removed from the query.