繁体   English   中英

GAE搜索API排序

[英]GAE Search API sorting

我基本上想要使用MatchScore对文档进行排序,但是,请提升那些拥有图像的文档。

为此,我的方法是使用提升值向文档添加字段,然后将此值乘以文档_score。

问题是,使用以下代码我无法实现基于两个值的乘法对文档进行排序。 Search API返回按_score排序的文档,而不是我传递的SortOptions表达式。

sort_opts = SortOptions(
        match_scorer=search.MatchScorer(),
        expressions=[
            search.SortExpression(
                expression='_score * has_img',
                direction=search.SortExpression.DESCENDING,
                default_value=0.0
            )
        ]
    )

options = QueryOptions(
    limit=10,
    sort_options=sort_opts,
    returned_expressions=[
        FieldExpression('score', '_score * has_img'),
        FieldExpression('normalscore', '_score * 1')
    ]
)

index = search.Index(name='Search', namespace='search')
results = index.search(
    query=Query(
        query_string=search_query,
        options=options
    )
)

正如您所看到的,为了进行调试,我返回了我想要排序的分数以及默认分数。 但是,它们会返回正确的值,但文档仍按默认分数排序。

我做错了什么想法?

如上所述:

我有同样的问题,它似乎是一个GAE错误。 我找到的唯一方法是使用内置的_rank字段(请参阅查询和排序选项)。 基本思想是将文档的_rank字段设置为表示“拥有图像”的值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM