我正在使用 Solr 5.3.0 制作新闻搜索系统。假设我有以下新闻领域:{
- 标题
- 内容
- 日期
- 新闻类型
}
我在这个搜索系统中同时搜索公司名称和经理名称。让我们说“Stark Industries”作为公司名称,“Tony Stark”作为经理名称。我想按日期(这很容易做到)、相关性和以下规则对结果进行排序:
A:
有关术语同时存在于“标题”字段和“内容”字段中的消息。
有关术语仅存在于“标题”字段中的消息。
有关条款仅存在于“内容”字段中的消息。
乙:
公司名称(Stark Industries)和经理名称(Tony Stark)都存在的消息。
只有公司名称存在的新闻。
只有经理姓名存在的新闻。
顺序应该是 1>2>3(这意味着 1 应该在 2 的顶部)。而A和B应该是两种不同的新闻评分方式。最终得分可能等于 A*B。
我使用此代码赋予“标题”字段比“内容”字段更大的权重defType = edismax & qf=notice_title^200+notice_content
。所以我让“标题”字段比“内容”字段更重要。
但是通过这种方式,我无法确定 A1 > A2 > A3。它只会增加“标题”字段的分数。与规则 B 相同,我只能使用 qf 来增加公司名称的权重。
如果有办法增加 (Title && Content):(CompanyName && ManagerName) 的权重,应该会有所帮助。(我试图表示这两个字段中都存在这两个术语。)但是这种语法在 qf 中不起作用。
任何帮助将不胜感激。