【发布时间】:2012-08-10 08:24:02
【问题描述】:
在 Solr 索引记录中,假设我有这个示例记录(例如 JSON):
{
"title":"Innovation Life and Strategy",
"author":"Sarah Howard",
},
{
"title":"Simple Life", <--- This will be ignored
"author":"W. David",
},
{
"title":"Today's Innovations",
"author":"Michael Wayne", <--- This Author will be listed at the top
},
{
"title":"The Innovation Records",
"author":"Tommy Wright",
},
etc ..
如何进行 Solr 查询:
- 在
title字段中由innovation过滤
(所以我们在那里有 3 条记录) - 然后,对结果进行排序,将作者:
Wayne放在顶部
所以最终的结果应该是:
{
"title":"Today's Innovations",
"author":"Michael Wayne",
},
{
"title":"Innovation Life and Strategy",
"author":"Sarah Howard",
},
{
"title":"The Innovation Records",
"author":"Tommy Chen",
},
我只迈出了第一步,fq=title:*Innovation*
但我不知道第二步的查询(自定义排序)。
请问怎么弄啊?
【问题讨论】:
-
自定义排序的依据、逻辑或规则是什么??有没有固定的逻辑???
-
我的意思是你的自定义排序背后的逻辑是什么?因为在这种情况下焦点似乎很明显,但在其他情况下会有所不同。您可以提高韦恩的结果,这将导致它始终出现。但是,如果没有任何规则集,这是没有意义的,也不是通用的。
-
提升?你的意思是我们可以使用Boost设置显示顺序优先级?你能举一些例子吗?
-
如果您使用 dismax 查询处理程序,您可以轻松提升 bq=author:wayne^1.5 等记录。这将增加作者拥有韦恩的记录。但是,这太具体了,不是通用的规则。