def is_helpful_search_term(search_term):
    """
    Decide if the given search_term string is helpful or not.

    We define "helpful" here as search terms that won't match an excessive
    number of bug summaries.  Very short terms and those matching generic
    strings (listed in the blacklist) are deemed unhelpful since they wouldn't
    result in useful suggestions.
    """
    # Search terms that will match too many bug summaries
    # and so not result in useful suggestions.
    search_term = search_term.strip()

    blacklist = [
        'automation.py',
        'remoteautomation.py',
        'Shutdown',
        'undefined',
        'Main app process exited normally',
        'Traceback (most recent call last):',
        'Return code: 0',
        'Return code: 1',
        'Return code: 2',
        'Return code: 9',
        'Return code: 10',
        'mozalloc_abort(char const*)',
        'mozalloc_abort',
        'Exiting 1',
        'Exiting 9',
        'CrashingThread(void *)',
        'libSystem.B.dylib + 0xd7a',
        'linux-gate.so + 0x424',
        'TypeError: content is null',
        'leakcheck',
        'ImportError: No module named pygtk',
        '# TBPL FAILURE #'
    ]

    return len(search_term) > 4 and search_term not in blacklist
Decide if the given search_term string is helpful or not.

    We define "helpful" here as search terms that won't match an excessive
    number of bug summaries.  Very short terms and those matching generic
    strings (listed in the blacklist) are deemed unhelpful since they wouldn't
    result in useful suggestions.