Abstract: A method of forming a keyword based search query that uses a plurality of keywords, in which the keywords of the query are arranged into groups of purpose-related keywords, in which each keyword is associated with a designation of its relative importance. The keywords of a group may be identified manually by the searcher, or existing keywords in a group may be used to suggest or automatically add additional related keywords to the group. The keywords of a group need not be semantically related, but only related to a common purpose of the keyword group. Additional keywords can be suggested to the searcher, or automatically added to the groups. Suitable additional keywords may be identified by reference to previous searches in which the existing keywords were grouped with those additional keywords. Keywords may also be derived from text designated by the searcher, using all or portions of one or more documents or text blocks that the user identifies as describing a concept of interest to the searcher.