implement search book feature and its spec

In progress, do not merge.