【问题标题】:How to constrain/filter More Like This results in Solr?如何在 Solr 中约束/过滤更多类似结果?
【发布时间】:2011-09-30 14:58:59
【问题描述】:

在 Solr 中,我想知道是否可以从标准(dismax)查询中约束/过滤“More Like This”结果集 - 例如,无需使用特定的 MoreLikeThis 请求处理程序?例如,我有一个 Solr 索引,其中包含两个国家的文档。当我进行原始 (dismax) 查询时,我使用字段查询运算符 (fq) 来过滤感兴趣国家/地区的结果。但是返回的 MLT 结果是针对这两个国家的。我尝试使用 mlt.fl=country,name 来指示“向我显示更多在国家和名称方面相似的结果”,但它似乎不符合国家标准(或者至少名称参数远远超过国家参数) .

我似乎找不到任何表明有此选项的 Solr 文档,但我希望你们中的一个 Solr 专家可能对此有一些漂亮的技巧/黑客。

提前致谢!

【问题讨论】:

  • country 字段的 fieldType 是什么?
  • 国家/地区字段的字段类型只是一个字符串

标签: solr lucene morelikethis


【解决方案1】:

Solr mlt.fl 应该根据这些字段查找相关文档。但是,它没有义务像 fq 的 NOT clause 那样这样做。一种解决方法可能是使用 fq 参数排除国家/地区。因此,您的 mlt 查询可能会变成类似

/mlt?q=id:ID&fq=-country:COUNTRY&mlt.boost=true

ID:需要为其计算 MLT 的文档 ID。 COUNTRY:您要排除的国家/地区。

【讨论】:

  • 谢谢,但这并不是我想要的,因为我希望避免使用 MLT 请求处理程序。但是在仔细阅读文档之后,似乎这是不可能的。来自 Solr 文档 wiki:“如果您想过滤 MoreLikeThis 给出的类似结果,您必须使用 MoreLikeThisHandler。” (wiki.apache.org/solr/MoreLikeThis)
  • 是的。 MLTComponent 提供了更大的灵活性,建议在复杂情况下使用。
猜你喜欢
  • 2018-07-30
  • 1970-01-01
  • 1970-01-01
  • 2011-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-14
  • 1970-01-01
  • 2013-05-29
相关资源
最近更新 更多