好的,所以我正在迁移到Elasticsearch,除了触摸源代码之外我还没有找到调整分数的方法(这是一个选项,但我想知道是否有&#39 ;更好的方式)或查询1000个结果并在之后对其进行排序(不是)。
少数情况:
1)
结果A:
{
"type":"project",
"title":"foobar"
}
结果B:
{
"type":"bug",
"title":"#foobar something is broken"
}
=>我需要对结果A进行大量优先处理,以便查询foobar始终首先返回相应的项目而不是数百个错误报告,这些报告恰好在标题中有foobar(非常典型的情况,因为原因)。
2)
结果A:
{
"type":"bug",
"title":"#foobar something is broken",
"status":"done"
}
结果B:
{
"type":"bug",
"title":"#foobar something else is broken",
"status":"todo"
}
=>具有某些状态的结果应该优先,如在>中那样。在这种情况下是A.
3)
结果A:
{
"type":"bug",
"title":"#foobar something is broken",
"priority":"critical"
}
结果B:
{
"type":"bug",
"title":"#foobar something else is broken",
"priority":"low"
}
=> A>> B显然。
等
如果有帮助,我还可以为Elasticsearch可用于排序的项目生成一些静态搜索分数,例如。
{
"type":"bug",
"title":"#foobar something else is broken",
"priority":"low".
"searchscore":"420"
}
它没有捕捉到结果比较逻辑中的所有复杂性,但如果它明显更容易实现,它将是一个足够接近的解决方案。