To modify the search method on the m2o field you can override the name_search method. eg.
def name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100):
vals = (CLASSNAME, self).name_search(cr, user, name=name, args=args, operator=operator, context=context, limit=limit)
#do your code
return list # e.g[(id, 'name')]
by overriding the name_search method you can extend your search for m2o type field.
Or you can refer : https://doc.openerp.com/v6.1/developer/03_modules_2/#openerp.osv.orm.BaseModel.name_search
Refer to: https://bugs.launchpad.net/openerp-web/+bug/1209295 for solution.