milvus: 搜索collection

一,代码:


from flask import Blueprint,jsonify,render_template,request

from app import milvus_client
from pymilvus import FieldSchema, DataType, CollectionSchema, Collection, connections
from helpers.utils import success_response

from sentence_transformers import SentenceTransformer
import ast

vector = Blueprint('vector', __name__)

transformer = SentenceTransformer('/data/python/flask/study/all-MiniLM-L6-v2')

# 连接 Milvus 集合
search_params = {
    'metric_type': 'COSINE',
    'params': {
        'nprobe': 10  # 搜索时探测的聚类中心数量
    }
}

def embed_search(search_string):
    search_embeddings = transformer.encode(search_string)
    return search_embeddings

def search_for_articles(search_string):
    user_vector = embed_search(search_string)
    print("要搜索的内容:")
    print(user_vector)
    hits = milvus_client.search(
        collection_name="article",
        data=[user_vector],
        anns_field='content_vector',
        limit=1,
        search_params=search_params,
        filter='',
        output_fields=['id', 'content', 'product_ids']
    )
    return hits

@vector.route("/search/", methods=['GET'])
def search():
    # collection.load()
    milvus_client.load_collection("article")
    search_string = "律师对这个事怎么看?"
    results = search_for_articles(search_string)
    print(results)

    #列出所有数据库
    resOne = {
        "id": results[0][0]['id'],
        "content": results[0][0]['entity']['content'],
    }
    return success_response(resOne)

 

二,测试结果:

image

 

posted @ 2025-11-16 15:05  刘宏缔的架构森林  阅读(9)  评论(0)    收藏  举报