You can clone with
HTTPS or Subversion.
Although it might be necessary to keep track of what search keywords fired off an ajax request so that you may return a cached result (as this could have changed), I DO recommend that you merge all returned result sets together.
I realize there may be an overhead concern with merging larger and larger resultsets, however if you typed in "Jon" and then "Billy" and then "Jon" again, there is no reason you shouldn't immediately start filtering and seeing "Jon" the second time around. This would be instead of discarding the rows every time the chosen widget is closed.