'Perform faster lookup providing just imdb_id.
Falls back to using basic lookup if data cannot be found from cache.
.. note::
API will be changed, it\'s dumb to return None on errors AND
raise PluginError on some else
:param movie_title: Name of the movie
:param raw_title: Raw entry title
:return: imdb id or None
:raises PluginError: Failure reason'

@with_session
def imdb_id_lookup(self, movie_title=None, movie_year=None, raw_title=None, session=None):

    if movie_title:
        log.debug((u'imdb_id_lookup:    trying    with    title:    %s' % movie_title))
        query = session.query(Movie).filter((Movie.title == movie_title))
        if (movie_year is not None):
            query = query.filter((Movie.year == movie_year))
        movie = query.first()
        if movie:
            log.debug((u'-->    success!    got    %s    returning    %s' % (movie, movie.imdb_id)))
            return movie.imdb_id
    if raw_title:
        log.debug((u'imdb_id_lookup:    trying    cache    with:    %s' % raw_title))
        result = session.query(SearchResult).filter((SearchResult.title == raw_title)).first()
        if result:
            if result.fails:
                return None
            log.debug((u'-->    success!    got    %s    returning    %s' % (result, result.imdb_id)))
            return result.imdb_id
    if raw_title:
        fake_entry = Entry(raw_title, u'')
        self.lookup(fake_entry)
        return fake_entry[u'imdb_id']
