当前位置: 首页 > wzjs >正文

app 网站开发公司买了虚拟主机怎么做网站

app 网站开发公司,买了虚拟主机怎么做网站,网站设计样式,网站制作 万网1 字符串字段 在 Milvus 中,VARCHAR 是用于存储字符串数据的数据类型。定义VARCHAR 字段时,有两个参数是必须的: 将datatype 设置为DataType.VARCHAR 。指定max_length ,它定义了VARCHAR 字段可存储的最大字符数。max_length 的有…

1 字符串字段

        在 Milvus 中,VARCHAR 是用于存储字符串数据的数据类型。定义VARCHAR 字段时,有两个参数是必须的:

  • datatype 设置为DataType.VARCHAR 。
  • 指定max_length ,它定义了VARCHAR 字段可存储的最大字符数。max_length 的有效范围为 1 至 65,535 个字符。

        Milvus 支持VARCHAR 字段的空值和默认值。要启用这些功能,可将nullable 设置为True ,将default_value 设置为字符串值。

1.1 添加 VARCHAR 字段

        要在 Milvus 中存储字符串数据,请在 Collections Schema 中定义一个VARCHAR 字段。下面是一个定义了两个VARCHAR 字段的 Collections 模式的示例:

  • varchar_field1VARCHAR:最多存储 100 个字符,允许空值,默认值为"Unknown" 。
  • varchar_field2:字段最多可储存 200 个字符,允许空值,但没有默认值。

        如果在定义 Schema 时设置enable_dynamic_fields=True ,Milvus 允许插入事先未定义的标量字段。不过,这可能会增加查询和管理的复杂性,并可能影响性能。

# 导入必要的库
from pymilvus import MilvusClient, DataType# 定义服务器地址
SERVER_ADDR = "http://localhost:19530"# 创建一个MilvusClient实例
client = MilvusClient(uri=SERVER_ADDR)# 定义集合模式
schema = client.create_schema(auto_id=False,enable_dynamic_fields=True,
)# 添加“varchar_field1”,支持null值,默认值为“未知”。
schema.add_field(field_name="varchar_field1", datatype=DataType.VARCHAR, max_length=100, nullable=True, default_value="Unknown")
# 增加‘ varchar_field2 ’,支持无默认值的空值
schema.add_field(field_name="varchar_field2", datatype=DataType.VARCHAR, max_length=200, nullable=True)
schema.add_field(field_name="pk", datatype=DataType.INT64, is_primary=True)
schema.add_field(field_name="embedding", datatype=DataType.FLOAT_VECTOR, dim=3)

1.2 设置索引参数

        索引有助于提高搜索和查询性能。在 Milvus 中,对于向量字段必须建立索引,但对于标量字段可选。下面的示例使用AUTOINDEX 索引类型为向量字段embedding 和标量字段varchar_field1 创建了索引。使用这种类型,Milvus 会根据数据类型自动选择最合适的索引。您还可以自定义每个字段的索引类型和参数。

# 设置索引参数index_params = client.prepare_index_params()# Index `varchar_field1` with AUTOINDEX
index_params.add_index(field_name="varchar_field1",index_type="AUTOINDEX",index_name="varchar_index"
)# 使用AUTOINDEX索引“嵌入”并指定metric_type
index_params.add_index(field_name="embedding",index_type="AUTOINDEX",  # 使用自动索引来简化复杂的索引设置metric_type="COSINE"  # 指定相似度量类型,选项包括L2、COSINE或IP
)

1.3 创建 Collections

        定义好 Schema 和索引后,创建一个包含字符串字段的 Collection。

client.create_collection(collection_name="my_collection",schema=schema,index_params=index_params
)

1.4 插入数据

        创建 Collections 后,插入与 Schema 匹配的实体。

# 样本数据
data = [{"varchar_field1": "Product A", "varchar_field2": "High quality product", "pk": 1, "embedding": [0.1, 0.2, 0.3]},{"varchar_field1": "Product B", "pk": 2, "embedding": [0.4, 0.5, 0.6]}, # 缺少varchar_field2字段,应该为NULL{"varchar_field1": None, "varchar_field2": None, "pk": 3, "embedding": [0.2, 0.3, 0.1]},  # ‘ varchar_field1 ’默认为‘ Unknown ’, ‘ varchar_field2 ’为NULL{"varchar_field1": "Product C", "varchar_field2": None, "pk": 4, "embedding": [0.5, 0.7, 0.2]},  # ‘ varchar_field2 ’为NULL{"varchar_field1": None, "varchar_field2": "Exclusive deal", "pk": 5, "embedding": [0.6, 0.4, 0.8]},  # varchar_field1 ‘应该默认为’ Unknown '{"varchar_field1": "Unknown", "varchar_field2": None, "pk": 6, "embedding": [0.8, 0.5, 0.3]},  # ‘ varchar_field2 ’为NULL{"varchar_field1": "", "varchar_field2": "Best seller", "pk": 7, "embedding": [0.8, 0.5, 0.3]}, # 空字符串不被视为NULL
]# Insert data
client.insert(collection_name="my_collection",data=data
)

1.5 使用过滤表达式查询

        插入实体后,使用query 方法检索与指定过滤表达式匹配的实体。要检索varchar_field1 与字符串"Product A" 匹配的实体:

# 过滤器varchar_field1的值为“Product A”
filter = 'varchar_field1 == "Product A"'res = client.query(collection_name="my_collection",filter=filter,output_fields=["varchar_field1", "varchar_field2"]
)print(res)# Example output:
# data: [
#     "{'varchar_field1': 'Product A', 'varchar_field2': 'High quality product', 'pk': 1}"
# ]

        检索varchar_field2 为空的实体:

# 过滤‘ varchar_field2 ’为空的实体
filter = 'varchar_field2 is null'res = client.query(collection_name="my_collection",filter=filter,output_fields=["varchar_field1", "varchar_field2"]
)print(res)# Example output:
# data: [
#     "{'varchar_field1': 'Product B', 'varchar_field2': None, 'pk': 2}",
#     "{'varchar_field1': 'Unknown', 'varchar_field2': None, 'pk': 3}",
#     "{'varchar_field1': 'Product C', 'varchar_field2': None, 'pk': 4}",
#     "{'varchar_field1': 'Unknown', 'varchar_field2': None, 'pk': 6}"
# ]

        要检索varchar_field1 的值为"Unknown" 的实体,请使用下面的表达式。由于varchar_field1 的默认值是"Unknown" ,因此预期结果应包括将varchar_field1 明确设置为"Unknown" 或将varchar_field1 设置为空的实体。

# 过滤值为“未知”的“varchar_field1”实体
filter = 'varchar_field1 == "Unknown"'res = client.query(collection_name="my_collection",filter=filter,output_fields=["varchar_field1", "varchar_field2"]
)print(res)# Example output:
# data: [
#     "{'varchar_field1': 'Unknown', 'varchar_field2': None, 'pk': 3}",
#     "{'varchar_field1': 'Unknown', 'varchar_field2': 'Exclusive deal', 'pk': 5}",
#     "{'varchar_field1': 'Unknown', 'varchar_field2': None, 'pk': 6}"
# ]

1.6 使用过滤表达式进行向量搜索

        除了基本的标量字段筛选外,您还可以将向量相似性搜索与标量字段筛选结合起来。例如,下面的代码展示了如何在向量搜索中添加标量字段过滤器:

# 使用字符串过滤进行搜索# 过滤器varchar_field2,值为“Best seller”
filter = 'varchar_field2 == "Best seller"'res = client.search(collection_name="my_collection",data=[[0.3, -0.6, 0.1]],limit=5,search_params={"params": {"nprobe": 10}},output_fields=["varchar_field1", "varchar_field2"],filter=filter
)print(res)# Example output:
# data: [
#     "[{'id': 7, 'distance': -0.04468163847923279, 'entity': {'varchar_field1': '', 'varchar_field2': 'Best seller'}}]"
# ]

2 数字字段

        数字字段是一种存储数值的标量字段。这些数值可以是整数(整数)或十进制数(浮点数)。它们通常用于表示数量、测量值或任何需要进行数学处理的数据。下表描述了 Milvus 中可用的数字字段数据类型。

字段类型

描述

BOOL

布尔类型,用于存储true 或false ,适合描述二进制状态。

INT8

8 位整数,适合存储小范围整数数据。

INT16

16 位整数,适用于中范围整数数据。

INT32

32 位整数,适合存储一般整数数据,如产品数量或用户 ID。

INT64

64 位整数,适合存储时间戳或标识符等大范围数据。

FLOAT

32 位浮点数,适用于需要一般精度的数据,如等级或温度。

DOUBLE

64 位双精度浮点数,用于高精度数据,如财务信息或科学计算。

        要声明数字字段,只需将datatype 设置为可用的数字数据类型之一。例如,DataType.INT64 表示整数字段,DataType.FLOAT 表示浮点字段。Milvus 支持数字字段的空值和默认值。要启用这些功能,请将nullable 设置为True ,将default_value 设置为数值。

2.1 添加数字字段

        要存储数值数据,请在 Collections Schema 中定义一个数字字段。下面是一个包含两个数字字段的 Collections 模式示例:

  • age:存储整数数据,允许空值,默认值为18 。
  • price:存储浮点数据,允许空值,但没有默认值。

        如果在定义 Schema 时设置enable_dynamic_fields=True ,Milvus 允许插入事先未定义的标量字段。不过,这可能会增加查询和管理的复杂性,并可能影响性能。

# 导入必要的库
from pymilvus import MilvusClient, DataType# 定义服务器地址
SERVER_ADDR = "http://localhost:19530"# 创建一个MilvusClient实例
client = MilvusClient(uri=SERVER_ADDR)# 定义集合模式
schema = client.create_schema(auto_id=False,enable_dynamic_fields=True,
)# 增加一个INT64字段‘ age ’,支持null值,默认值为18
schema.add_field(field_name="age", datatype=DataType.INT64, nullable=True, default_value=18)
# 添加一个FLOAT字段‘ price ’,它支持没有默认值的空值
schema.add_field(field_name="price", datatype=DataType.FLOAT, nullable=True)
schema.add_field(field_name="pk", datatype=DataType.INT64, is_primary=True)
schema.add_field(field_name="embedding", datatype=DataType.FLOAT_VECTOR, dim=3)

2.2 设置索引参数

        索引有助于提高搜索和查询性能。在 Milvus 中,对于向量字段必须建立索引,但对于标量字段可选。下面的示例使用AUTOINDEX 索引类型为向量字段embedding 和标量字段age 创建了索引。使用这种类型,Milvus 会根据数据类型自动选择最合适的索引。您还可以自定义每个字段的索引类型和参数。

# 设置索引参数index_params = client.prepare_index_params()# 使用AUTOINDEX索引“age”
index_params.add_index(field_name="age",index_type="AUTOINDEX",index_name="age_index"
)# 索引“嵌入”与AUTOINDEX并指定相似度度量类型
index_params.add_index(field_name="embedding",index_type="AUTOINDEX",  # 使用自动索引来简化复杂的索引设置metric_type="COSINE"  # 指定相似度量类型,选项包括L2、COSINE或IP
)

2.3 创建 Collections

        定义好 Schema 和索引后,创建一个包含数字字段的 Collection。

client.create_collection(collection_name="my_collection",schema=schema,index_params=index_params
)

2.4 插入数据

        创建 Collections 后,插入与 Schema 匹配的实体。

# 样本数据
data = [{"age": 25, "price": 99.99, "pk": 1, "embedding": [0.1, 0.2, 0.3]},{"age": 30, "pk": 2, "embedding": [0.4, 0.5, 0.6]}, # ‘ price ’字段缺失,应该为空{"age": None, "price": None, "pk": 3, "embedding": [0.2, 0.3, 0.1]},  # ‘ age ’默认为18,‘ price ’为空{"age": 45, "price": None, "pk": 4, "embedding": [0.9, 0.1, 0.4]},  # `price` is null{"age": None, "price": 59.99, "pk": 5, "embedding": [0.8, 0.5, 0.3]},  # “age”应该默认为18{"age": 60, "price": None, "pk": 6, "embedding": [0.1, 0.6, 0.9]}  # `price` is null
]client.insert(collection_name="my_collection",data=data
)

2.5 使用过滤表达式查询

        插入实体后,使用query 方法检索与指定过滤表达式匹配的实体。检索age 大于 30 的实体:

filter = 'age > 30'res = client.query(collection_name="my_collection",filter=filter,output_fields=["age", "price", "pk"]
)print(res)# Example output:
# data: [
#     "{'age': 45, 'price': None, 'pk': 4}",
#     "{'age': 60, 'price': None, 'pk': 6}"
# ]

        检索price 为空的实体:

filter = 'price is null'res = client.query(collection_name="my_collection",filter=filter,output_fields=["age", "price", "pk"]
)print(res)# Example output:
# data: [
#     "{'age': 30, 'price': None, 'pk': 2}",
#     "{'age': 18, 'price': None, 'pk': 3}",
#     "{'age': 45, 'price': None, 'pk': 4}",
#     "{'age': 60, 'price': None, 'pk': 6}"
# ]

        要检索age 的值为18 的实体,请使用下面的表达式。由于age 的默认值是18 ,因此预期结果应包括将age 明确设置为18 或将age 设置为空的实体。

filter = 'age == 18'res = client.query(collection_name="my_collection",filter=filter,output_fields=["age", "price", "pk"]
)print(res)# Example output:
# data: [
#     "{'age': 18, 'price': None, 'pk': 3}",
#     "{'age': 18, 'price': 59.99, 'pk': 5}"
# ]

2.6 使用过滤表达式进行向量搜索

        除了基本的数字字段过滤外,您还可以将向量相似性搜索与数字字段过滤器结合起来。例如,下面的代码展示了如何在向量搜索中添加数字字段过滤器:

filter = "25 <= age <= 35"res = client.search(collection_name="my_collection",data=[[0.3, -0.6, 0.1]],limit=5,search_params={"params": {"nprobe": 10}},output_fields=["age","price"],filter=filter
)print(res)# Example output:
# data: [
#     "[{'id': 2, 'distance': -0.2016308456659317, 'entity': {'age': 30, 'price': None}}, {'id': 1, 'distance': -0.23643313348293304, 'entity': {'age': 25, 'price': 99.98999786376953}}]"
# ]

        在这个示例中,我们首先定义了一个查询向量,并在搜索过程中添加了一个过滤条件25 <= age <= 35 。这样不仅能确保搜索结果与查询向量相似,还能满足指定的年龄范围。


文章转载自:

http://cZQRvczX.qhfdL.cn
http://f6qbAGpP.qhfdL.cn
http://K42x7rEn.qhfdL.cn
http://MEjyDydW.qhfdL.cn
http://ECnrglLy.qhfdL.cn
http://J4iFwaOV.qhfdL.cn
http://9HkkGDak.qhfdL.cn
http://YhqqgHto.qhfdL.cn
http://AsyVaB3G.qhfdL.cn
http://mTilhWT1.qhfdL.cn
http://GSAi0hSW.qhfdL.cn
http://OgXPpEGo.qhfdL.cn
http://5g5KNf3F.qhfdL.cn
http://vNkPCw9C.qhfdL.cn
http://PJoYwAWs.qhfdL.cn
http://BRtAfFBI.qhfdL.cn
http://CYr9Gh3v.qhfdL.cn
http://1f1SFIDK.qhfdL.cn
http://xCbscfie.qhfdL.cn
http://8590IMH4.qhfdL.cn
http://e86gDMkV.qhfdL.cn
http://6y4Hfgel.qhfdL.cn
http://OwJeUD8w.qhfdL.cn
http://zBn1Fl17.qhfdL.cn
http://jh2MPMf3.qhfdL.cn
http://lbHmU6Rn.qhfdL.cn
http://55LuIsrm.qhfdL.cn
http://Aq5XhGom.qhfdL.cn
http://KF5rhjw2.qhfdL.cn
http://0P9vfkJz.qhfdL.cn
http://www.dtcms.com/wzjs/609727.html

相关文章:

  • 互联网平台推广方案seo搜索引擎优化ppt
  • flash建网站教程校园网站建设服务
  • php网站验证码错误推广渠道方式
  • 南宁网站推广经理网站开发平面设计师岗位要求
  • 国外推广网站网站seo平台
  • 长春网站建设模板福田网页设计
  • 中国做网站泰州网站建设 思创
  • 上海专业高端网站建设服务蜜雪冰城网络营销论文
  • 杭州做兼职网站天津 网站设计公司
  • 做网站怎么建立文件夹器材管理网站开发
  • 南宁专业网站建设公司腾讯网络游戏大全列表
  • 做模版网站需要租服务器吗电脑更新后wordpress
  • 免费建站宝盒自学做网站多长时间
  • thinkcmf做网站快不快织梦网站模板源码
  • 网站程序 制作个人做网站要注意什么条件
  • jsp网站开发的环境配置高德地图开发平台
  • 做网站能挣钱不360建筑网个人信息怎么改
  • 做个网站要钱吗wordpress模板网站模板
  • 各大网站搜索引擎入口WordPress自己写主题
  • 中国建设银行 英文网站广告设计与制作工资一般多少
  • 旅游投资公司网站建设ppt模板百度做免费推广的步骤
  • 成都开发网站建设广告创意设计竞赛
  • 做论坛网站要多少配置的服务器网站建设群发广告词
  • 大连凯杰建设有限公司网站在网站上做教学直播平台多少钱
  • 网站开发与网页制作难不难网站主题和风格
  • 北京市网站公司wordpress首页文章轮播
  • 南京做网站的公司排名安装wordpress教程
  • 用小程序做视频网站微信小程序需要服务器吗
  • 新手做网页做那个网站简单网页微信版网址
  • 住房和城乡建设部网站进不去网站怎么做图片转链