How does the semantic search plugin work? Does it create an embedding for the model using the uploaded documents, or does it perform full-text search on the docs and then uses the model to answer based on the retrieved section of the document? What exactly is the datastore API here?