Keyword Search Help

A result of many years of research and development, FoundationSearch is breaking new ground by being the first completely keyword searchable database of IRS Form 990PF information.  What sets FoundationSearch apart from any product currently available is that all parts of the document are fully searchable including the preprinted data and the manually entered information.

To search using, enter a search request in the space provided and click the Search button. will return a list of the documents that match your request. To view a document in the list, click on the link. After you have opened a document in, you can use the Next Doc and Prev Doc buttons on the button bar to navigate from document to document.


FoundationSearch supports the boolean keyword search method for exploring the US 990PF returns.

A boolean search request consists of a group of words or phrases linked by connectors such as and and or that indicate the relationship between them. Examples:

children and education Both words must be present
children or education Either word can be present
children w/5 education Children must occur within 5 words of education
children not w/5 education Children must not occur within 5 words of education
youth and not boys Only youth must be present
filename contains smith The filename of the document must contain smith

If you use more than one connector, you should use parentheses to indicate precisely what you want to search for. For example, apple and pear or orange juice could mean (apple and pear) or orange, or it could mean apple and (pear or orange).

Noise words, such as if and the, are ignored in searches.

Search terms may include the following special characters:

? Matches any single character. Example: appl? matches apply or apple.
* Matches any number of characters. Example: appl* matches application
~ Stemming. Example: apply~ matches apply, applies, applied.
% Fuzzy search. Example: ba%nana matches banana, bananna.
# Phonic search. Example: #smith matches smith, smythe.
: Variable term weighting. Example: apple:4 w/5 pear:1

Words and Phrases

You can use a phrase anywhere in a search request. To search for a phrase, use quotation marks around it.  Example:

education w/5 "child development"

If a phrase contains a noise word, FoundationSearch will skip over the noise word when searching for it. For example, a search for statue of liberty would retrieve any document containing the word statue, any intervening word, and the word liberty.

Punctuation inside of a search word is treated as a space. Thus, can't would be treated as a phrase consisting of two words: can and t.

Wildcards (* and ?)

A search word can contain the wildcard characters * and ?. A ? in a word matches any single character, and a * matches any number of characters. The wildcard characters can be in any position in a word. For example:

appl* would match apple, application, etc.
*cipl* would match principle, participle, etc.
appl? would match apply and apple but not apples.
ap*ed would match applied, approved, etc.

Use of the * wildcard character near the beginning of a word will slow searches somewhat.

Fuzzy Searching

Fuzzy searching will find a word even if it is misspelled. For example, a fuzzy search for apple will find appple. Fuzzy searching can be useful when you are searching text that may contain typographical errors, or for text that has been scanned using optical character recognition (OCR). There are two ways to add fuzziness to searches:

  1. Check the "Fuzzy searching" box to enable fuzziness for all of the words in your search request.
  2. You can also add fuzziness selectively using the % character. The number of % characters you add determines the number of differences will ignore when searching for a word. The position of the % characters determines how many letters at the start of the word have to match exactly. Examples:
  • ba%nana Word must begin with ba and have at most one difference between it and banana.
  • b%%anana Word must begin with b and have at most two differences between it and banana.


Stemming extends a search to cover grammatical variations on a word. For example, a search for child would also find children. A search for applied would also find applying, applies, and apply. There are two ways to add stemming to your searches:

  1. Check the Stemming box in the search form to enable stemming for all of the words in your search request. Stemming does not slow searches noticeably and is almost always helpful in making sure you find what you want.
  2. If you want to add stemming selectively, add a ~ at the end of words that you want stemmed in a search. Example: apply~

Phonic Searching

Phonic searching looks for a word that sounds like the word you are searching for and begins with the same letter. For example, a phonic search for Smith will also find Smithe and Smythe.

To ask to search for a word phonically, put a # in front of the word in your search request. Examples:

#smith, #johnson

You can also check the Phonic searching box in the search form to enable phonic searching for all words in your search request. Phonic searching is somewhat slower than other types of searching and tends to make searches over-inclusive, so it is usually better to use the # symbol to do phonic searches selectively.

Variable Term Weighting

When sorts search results after a search, by default all words in a request count equally in counting hits. However, you can change this by specifying the relative weights for each term in your search request, like this:

children:5 and education:1

This request would retrieve the same documents as children and education but, would weight children five times as heavily as education when sorting the results.

In a natural language search, automatically weights terms based on an analysis of their distribution in your documents. If you provide specific term weights in a natural language search, these weights will override the weights would otherwise assign.

AND Connector

Use the AND connector in a search request to connect two expressions, both of which must be found in any document retrieved. For example:

child development and social services would retrieve any document that contained both phrases.

(HIV or AIDS) and (diagnosis w/5 treatment) would retrieve any document that (1) contained either HIV OR AIDS, AND (2) contained diagnosis within 5 words of treatment.

OR Connector

Use the OR connector in a search request to connect two expressions, at least one of which must be found in any document retrieved. For example, child development or social services would retrieve any document that contained child development, social services, or both.

W/N Connector

Use the W/N connector in a search request to specify that one word or phrase must occur within N words of the other. For example, children w/5 education would retrieve any document that contained children within 5 words of education. The following are examples of search requests using W/N:

(youth or children) w/5 education
(youth w/5 education) w/10 children
(youth and education) w/10 children

Some types of complex expressions using the W/N connector will produce ambiguous results and should not be used. The following are examples of ambiguous search requests:

(youth and education) w/10 (children and school)
(youth w/10 education) w/10 (children and school)

In general, at least one of the two expressions connected by W/N must be a single word or phrase or a group of words and phrases connected by or. Example:

(youth and education) w/10 (children or school)
(youth and education) w/10 community service

FoundationSearch uses two built in search words to mark the beginning and end of a file: xfirstword and xlastword. The terms are useful if you want to limit a search to the beginning or end of a file. For example, hospital w/10 xlastword would search for hospital within 10 words of the end of a document.


Use NOT in front of any search expression to reverse its meaning. This allows you to exclude documents from a search. Example:

community service and not health

NOT standing alone can be the start of a search request. For example, not pear would retrieve all documents that did not contain pear.

If NOT is not the first connector in a request, you need to use either AND or OR with NOT:

community or not health
not (community w/5 health)

The NOT W/ ("not within") operator allows you to search for a word or phrase not in association with another word or phrase. Example:

community not w/20 health

Unlike the W/ operator, NOT W/ is not symmetrical. That is, apple not w/20 pear is not the same as pear not w/20 apple. In the apple not w/20 pear request, searches for apple and excludes cases where apple is too close to pear. In the pear not w/20 apple request, searches for pear and excludes cases where pear is too close to apple.