【问题标题】:Query SOLR search using id and match documents using different fields使用 id 查询 SOLR 搜索并使用不同字段匹配文档
【发布时间】:2015-01-23 17:35:59
【问题描述】:

为了描述问题,我将举一个例子。 假设我们在 SOLR 中有两个文档,

{id:"0001", "make":"福特福克斯柴油机"}

{id:"0002", "make":"福特福克斯 ST"}

如果客户搜索“Ford Focus ST”,我希望 SOLR 返回两个文档。 换句话说,我希望不考虑 Diesel 和 ST。 如果客户端搜索 q=id:0001 然后 sorl 使用标题匹配文档并排除单词 S​​T 或diesel 并因此返回两个文档,这也很好。

任何想法如何自定义 SOLR 来执行这样的操作?我应该实现自己的 RequestHandler 还是使用可用的处理程序? 我现在正在查看 MoreLikeThisHandler

【问题讨论】:

  • 你的问题不清楚
  • 我希望在搜索时 SOLR 搜索不包含某些术语。例如我们示例中的“Diesel”。因此,当用户使用 make:Ford Focus Diesel 进行搜索时,我希望 solr 返回与 Ford AND Focus 匹配的所有文档(两个文档)
  • 如果您只有一组固定的此类术语要排除,为什么不在索引时排除它们呢?只需在您的分析器链 (wiki.apache.org/solr/…) 中添加一个停止过滤器,并将 dieselST 等术语添加到您的停用词文件中
  • 有些用例可能适用这些条款。例如,您可能想搜索 Diesel Cars
  • 您的要求不明确。您是否要排除每个查询的第三个单词?

标签: solr solr4


【解决方案1】:

如果您将 make 索引为文本(而不是字符串),那么您所要求的应该会自动发生。事实上,包含任何个关键字的记录都会匹配。

如果您尝试匹配提供的所有关键字,您可以切换到eDisMax 查询解析器并使用mm 参数来控制所需的匹配百分比。

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 2017-03-02
    相关资源
    最近更新 更多