add search novel function