首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于数字字段的Weaviate结果排序

基于数字字段的Weaviate结果排序
EN

Stack Overflow用户
提问于 2022-05-02 12:27:08
回答 1查看 103关注 0票数 2

我们正在使用Weaviate为电子商务的结果服务。

我们的Weaviate数据库存储了我们销售的所有产品。

基于客户和搜索项,我们创建了一个向量,并使用它来查询数据库。这个属性称为search_engine_query_vector

例如,如果客户有购买昂贵产品和搜索“电视”的习惯,那么系统很可能会产生一个向量,它“更接近”数据库中价格更高的电视机。因此,他们的第一页结果是最昂贵的电视。

虽然这是很好的,99%的时间,我们也希望ppl能够根据价格进行排序。

为此,我们将向Weaviate发送一个查询,在那里我们只返回接近向量的产品(假设这是所有的电视)。如下所示:

代码语言:javascript
复制
client.query.get("Product", ["sku", "responseBody", "_additional { certainty }",
                                         "stores { ...on Store {storeId salesPrice additionalResponseBody}}"]).with_near_vector(
        {"vector": search_engine_query_vector, "similarity": TV_CUTOFF})
    .limit(10)
    .sort_base_on_price()

我的问题是,api中是否有类似于sort_base_on_price的功能?您可以假设price是架构中的数字字段。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-06 11:49:40

很高兴听到你和Weaviate合作开发电子商务解决方案。Weaviate在版本1.13中增加了排序功能的初始版本

在Weaviate版本1.13.0中,我们还发布了引入此功能的python v3.5.0。您可以找到python 这里或其他客户端这里所需的方法文档!

对于用例,还可以在GraphQL中尝试以下Weaviate控制台查询

代码语言:javascript
复制
{
  Get {
    Product(nearVector :{
      vector:[search_engine_query_vector],
      certainty: TV_CUTOFF
      } 
      sort:{
        order:desc,
        path:["price_field"]
      }
      limit: 10
    ) {
      sku
      responseBody
      stores { ...on Store {
        storeId 
        salesPrice 
        additionalResponseBody
      }
      _additional {
        certainty
      }
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72086700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档