【发布时间】:2012-05-28 13:30:51
【问题描述】:
我正在使用 Solr 来处理我的文本搜索需求。现在在 f1 上启用了 MLT(更像这样)。 f2 是我的日期字段。我想要 f1 上的 MLT 结果,但我只想要它们来自我的数据库的一个子集,即某个日期之后的结果(f2 上的范围查询)。如何自定义 MLT 以便可以在 f2(非 MLT 字段)上添加此范围查询?
我是 Solr 和 Java 的新手。任何基本的帮助都将不胜感激。谢谢。
【问题讨论】:
我正在使用 Solr 来处理我的文本搜索需求。现在在 f1 上启用了 MLT(更像这样)。 f2 是我的日期字段。我想要 f1 上的 MLT 结果,但我只想要它们来自我的数据库的一个子集,即某个日期之后的结果(f2 上的范围查询)。如何自定义 MLT 以便可以在 f2(非 MLT 字段)上添加此范围查询?
我是 Solr 和 Java 的新手。任何基本的帮助都将不胜感激。谢谢。
【问题讨论】:
根据https://wiki.apache.org/solr/MoreLikeThisHandler,MoreLikeThisHandler 支持 CommonQueryParameters。这意味着您应该能够将fq(过滤查询)参数添加到您的搜索中,并在 f2 介于某物和其他物之间进行过滤。例如:
fq=f2:["2011-03-21" TO "2012-03-21"]
这就是说,从 MLT 中找到所有结果,然后添加这个过滤查询。
【讨论】: