LINQ之路:LINQ Operators之集合运算符、Zip操作符、转换方法、生成器方法

📅 发布时间:2026/7/6 20:46:47 👁️ 浏览次数:
LINQ之路:LINQ Operators之集合运算符、Zip操作符、转换方法、生成器方法
朗鸵毡己ython示例Collection.query_group_by(self,vector: Optional[Union[List[Union[int, float]], np.ndarray]] None,*,group_by_field: str,group_count: int 10,group_topk: int 10,id: Optional[str] None,filter: Optional[str] None,include_vector: bool False,partition: Optional[str] None,output_fields: Optional[List[str]] None,sparse_vector: Optional[Dict[int, float]] None,async_req: bool False,) - DashVectorResponse:使用示例说明需要使用您的api-key替换示例中的YOUR_API_KEY、您的Cluster Endpoint替换示例中的YOUR_CLUSTER_ENDPOINT代码才能正常运行。Python示例import dashvectorimport numpy as npclient dashvector.Client(api_keyYOUR_API_KEY,endpointYOUR_CLUSTER_ENDPOINT)ret client.create(namegroup_by_demo,dimension4,fields_schema{document_id: str, chunk_id: int})assert retcollection client.get(namegroup_by_demo)ret collection.insert([(1, np.random.rand(4), {document_id: paper-01, chunk_id: 1, content: xxxA}),(2, np.random.rand(4), {document_id: paper-01, chunk_id: 2, content: xxxB}),(3, np.random.rand(4), {document_id: paper-02, chunk_id: 1, content: xxxC}),(4, np.random.rand(4), {document_id: paper-02, chunk_id: 2, content: xxxD}),(5, np.random.rand(4), {document_id: paper-02, chunk_id: 3, content: xxxE}),(6, np.random.rand(4), {document_id: paper-03, chunk_id: 1, content: xxxF}),])assert ret根据向量进行分组相似性检索Python示例ret collection.query_group_by(vector[0.1, 0.2, 0.3, 0.4],group_by_fielddocument_id, # 按document_id字段的值分组group_count2, # 返回2个分组group_topk2, # 每个分组最多返回2个doc)# 判断是否成功if ret:print(query_group_by success)print(len(ret))print(------------------------)for group in ret:print(group key:, group.group_id)for doc in group.docs:prefix -print(prefix, doc)参考输出如下query_group_by success4------------------------group key: paper-01- {id: 2, fields: {document_id: paper-01, chunk_id: 2, content: xxxB}, score: 0.6807}- {id: 1, fields: {document_id: paper-01, chunk_id: 1, content: xxxA}, score: 0.4289}group key: paper-02- {id: 3, fields: {document_id: paper-02, chunk_id: 1, content: xxxC}, score: 0.6553}- {id: 5, fields: {document_id: paper-02, chunk_id: 3, content: xxxE}, score: 0.4401}根据主键对应的向量进行分组相似性检索Python示例ret collection.query_group_by(id1,group_by_fieldname,)# 判断query接口是否成功if ret:print(query_group_by success)print(len(ret))for group in ret:print(group:, group.group_id)for doc in group.docs:print(doc)print(doc.id)print(doc.vector)print(doc.fields)带过滤条件的分组相似性检索Python示例# 根据向量或者主键进行分组相似性检索 条件过滤ret collection.query_group_by(vector[0.1, 0.2, 0.3, 0.4], # 向量检索也可设置主键检索group_by_fieldname,filterage 18, # 条件过滤仅对age 18的Doc进行相似性检索output_fields[name, age], # 仅返回name、age这2个Fieldinclude_vectorTrue)带有Sparse Vector的分组向量检索Python示例# 根据向量进行分组相似性检索 稀疏向量ret collection.query_group_by(vector[0.1, 0.2, 0.3, 0.4], # 向量检索sparse_vector{1: 0.3, 20: 0.7},group_by_fieldname,)