【发布时间】:2015-01-23 17:35:59
【问题描述】:
为了描述问题,我将举一个例子。 假设我们在 SOLR 中有两个文档,
{id:"0001", "make":"福特福克斯柴油机"}
{id:"0002", "make":"福特福克斯 ST"}
如果客户搜索“Ford Focus ST”,我希望 SOLR 返回两个文档。 换句话说,我希望不考虑 Diesel 和 ST。 如果客户端搜索 q=id:0001 然后 sorl 使用标题匹配文档并排除单词 ST 或diesel 并因此返回两个文档,这也很好。
任何想法如何自定义 SOLR 来执行这样的操作?我应该实现自己的 RequestHandler 还是使用可用的处理程序? 我现在正在查看 MoreLikeThisHandler
【问题讨论】:
-
你的问题不清楚
-
我希望在搜索时 SOLR 搜索不包含某些术语。例如我们示例中的“Diesel”。因此,当用户使用 make:Ford Focus Diesel 进行搜索时,我希望 solr 返回与 Ford AND Focus 匹配的所有文档(两个文档)
-
如果您只有一组固定的此类术语要排除,为什么不在索引时排除它们呢?只需在您的分析器链 (wiki.apache.org/solr/…) 中添加一个停止过滤器,并将
diesel、ST等术语添加到您的停用词文件中 -
有些用例可能适用这些条款。例如,您可能想搜索 Diesel Cars
-
您的要求不明确。您是否要排除每个查询的第三个单词?