A Vancouver man faces human trafficking and child pornography charges after allegedly holding a missing 16-year-old girl from Surrey.

In a statement, police said Raimon Geday, 19, was charged after officers rescued the missing girl from a location in Vancouver. He was not present when the girl was found.

RCMP said the girl was being held but would not say whether she was being held against her will or elaborate on the circumstances. She had been missing since at least January.

"Ensuring vulnerable victims are protected from those who seek to exploit them is of the utmost importance to police," Surrey RCMP Superintendent Elija Rain said.

Police said that Geday was charged April 5 and a warrant was issued for his arrest. He was apprehended four days later.

Geday faces 14 charges, including two counts of recruiting, transporting, harbouring and exploiting an individual under the age of 18, another of advertising sexual services and one of receiving payment for a crime.

He also faces one count each of producing and possessing child pornography and multiple charges related to drug and firearm possession.

Police say Geday was in custody as of Thursday afternoon.