我目前正在为我的个人文档构建一个信息搜索系统,并且我一直在阅读向量数据库(关于LangChain之类的东西)和全文搜索。我的问题是,有什么区别?两者似乎很相似,因为它们都搜索信息并为提出的问题提供结果。
我对这个主题做了一些研究,并阅读了 Elasticlunr.js 和 VectorDB 等内容的文档。
向量数据库实际上是保存文档向量化字符串的地方。例如,
langchain.vectorstores.Chroma
、langchain.vectorstores.FAISS
将文档的向量嵌入存储在内存中,即在 RAM 中,其中 langchain.vectorstores.Pinecone
、langchain.vectorstores.MongoDBAtlasVectorSearch
分别将向量嵌入存储在 Pinecone(基于云的存储)和 MongoDB 中。
另一方面,全文搜索是基于一些相似性度量(例如
cosine
、euclidean
等)搜索与用户给出的查询更相似的向量嵌入的方法。