我们正在尝试实现一个非常有趣的搜索逻辑与自定义提升,我想知道Solr是否可以支持这一点。索引中有以下字段:
每个关键字将有一个数量(int值)配对它。
搜索在名称、描述和关键字字段中运行。如果关键字与搜索文本匹配,则必须仅根据匹配关键字的数量来提升相应的索引。
我已经阅读过Solr DisMax,它们只能使用固定的数量来提升字段。
我的方案将是提高结果的X量,基于匹配的关键字。
提前感谢
发布于 2014-06-18 13:47:38
对于这个问题,我看到唯一可行的解决方案(当然,假设您事先不知道关键字的数量)就是将查询作为过滤器查询(跳过评分阶段),使所有文档匹配(有点问题),然后使用匹配的术语对它们进行排序,构建java比较器。
当您获得特别多的文档时,可能会出现问题,但是您可能可以通过分页来解决这个问题。
发布于 2014-06-18 10:37:14
如果您没有太多不同的金额,也许您可以在索引时间尝试这个方法:
根据“关键字”的数量,在不同字段(dynamicfields->boost-*)中存储“关键字”:
boost-1 = keyword1,keyword4,keyword6 <br/>
boost-10 = keyword2<br/>
boost-100 = keyword5您可以搜索所有的boost字段(Edismax),在(e)dismax conf(boost-1^1,boost-10^10,boost-100^100)中增加每个动态字段的数量。
https://stackoverflow.com/questions/24259493
复制相似问题