我有一个包含以下字段的新闻存储(标题,正文,新闻日期)
我需要一个符合以下条件的最佳查询
1)标题更重要但不到日期
2)日期应与当前日期进行比较,如果文件的日期接近当前日期则更有价值(注意:这并不意味着在新闻日期降序排序导致可能导致其标题及其正文的结果更相关但更老了)
这只是搜索的另一个因素,我认为它需要自定义排序
3)身体已排在第三位
任何解决方案?
答案 0 :(得分:1)
像@Guillaume所说,你需要使用助推器。
您可以在2个位置使用:一个在索引时(提升标题和正文),第二个(日期字段)在查询时使用。日期字段是查询时间,因为它是动态的
索引时间增加将如下:
Field fld = new Field(....); fld.setBoost(10f); // 10倍更重要,1是默认
查询时间提升将获得日期差异(例如以天或分钟为单位)并反向应用提升,即差异越大。提升越小。
答案 1 :(得分:0)
您应该在架构中使用Boosting,而不是非常复杂的查询。