Schema定义documents,Schema的字段类型

Schema 之所以能够定义documents, 是因为他可以限制你输入的字段及其类型. mongoose支持的基本类型有:

String
Number
Date
Buffer
Boolean
Mixed
ObjectId
Array

其中, Mixed和ObjectId是mongoose中特有的,ObjectId实际上就是_id的一个映射.
同样,mongoose里面有着和所有大众数据库一样的东西. 索引 – indexs

mongoose 设置索引

这里设置索引分两种,一种设在Schema filed, 另外一种设在 Schema.index 里.

### 创建 Milvus 集合或索引 在构建基于文档的 Milvus 应用程序时,创建集合和索引是至关重要的步骤。以下是具体实现方法: #### 加载必要的库并初始化环境变量 首先需要加载所需的 Python 库以及配置环境变量来访问外部服务。 ```python import os from dotenv import load_dotenv import openai load_dotenv() openai.api_key = os.getenv("OPENAI_API_KEY") from langchain.llms import OpenAI davinci = OpenAI(model_name="text-davinci-003") ``` #### 初始化 Milvus 实例 接着启动 Milvus Lite 版本以便于快速测试与开发工作流。 ```python from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection connections.connect(host='localhost', port='19530') ``` #### 定义字段模式 定义用于描述数据结构的字段列表,这一步骤对于后续的数据插入至关重要。 ```python fields = [ FieldSchema(name="id", dtype=DataType.INT64, is_primary=True), FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=768), # 假设嵌入维度为768 ] schema = CollectionSchema(fields, "Example schema for document embeddings") collection = Collection(name="example_collection", schema=schema) ``` #### 插入文档及其元数据 遍历待处理的文档集合并将其转换成适合存入 Milvus 的格式。这里假设已经有一个名为 `docs` 的对象包含了所有要导入的文档条目。 ```python for idx, doc in enumerate(docs): embedding = get_embedding(doc.text) # 获取文本嵌入向量的方法需自行实现 data_to_insert = { 'id': idx, 'embedding': embedding.tolist(), **{k:v for k,v in doc.metadata.items()} # 将其他元数据作为附加属性保存下来 } collection.insert([data_to_insert]) ``` #### 构建索引 最后一步是对新建立好的表单应用合适的索引来加速查询操作效率。 ```python index_params = {"metric_type": "L2", "index_type": "IVF_FLAT", "params": {"nlist": 128}} collection.create_index(field_name="embedding", index_params=index_params) # 确保更改生效 collection.load() ``` 通过上述过程可以成功地将一组文档转化为可以在 Milvus 上高效检索的形式[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值