Mic*_*dek 5 sorting google-app-engine boost google-search-api python-2.7
我基本上想要使用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
)
)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,为了进行调试,我返回了我想要排序的分数以及默认分数.但它们会返回正确的值,但文档仍按默认分数排序.
我做错了什么想法?
如上所述:
我也遇到了同样的问题,看来是GAE的bug。我发现的唯一方法是使用内置的 _rank 字段(请参阅查询和排序选项)。基本思想是将文档的 _rank 字段设置为表示“具有图像”的值
| 归档时间: |
|
| 查看次数: |
573 次 |
| 最近记录: |