【问题标题】:How do I apply Solr 'More Like This' component as part of my search如何在搜索中应用 Solr 'More Like This' 组件
【发布时间】:2017-07-29 01:45:51
【问题描述】:

我正在尝试执行包含“More Like This”组件的 solr 查询。在文档中找不到这种情况。这是一个带有两个字段的假设示例 Product 实体 -

{
   product_name: "name of the product in 3 or 4 words"
   product_description: "this is a long english verbose text, may be 10 
   sentences"    
}

如果给我一个新产品,我想在我的 Solr 索引中搜索类似的产品。搜索应使用以下逻辑 -

  • newProduct.product_name - 我想对索引中的“product_name”字段进行简单的基于令牌的搜索。
  • newProduct.product_description - 我想使用此字段对索引中的“product_description”字段执行“更多类似”搜索。

如何通过对 Solr 的单个查询来完成此操作?

如果场景不清楚,请告诉我。

【问题讨论】:

    标签: solr


    【解决方案1】:

    您可以使用 More Like This 请求处理程序 (mlt) 对给定的文档文本执行“More Like 搜索”,而无需先将文档添加到索引中。

    将文档作为 POST 数据或请求中的 stream.body 参数包含在内。有一个example given in the old wiki - 请参阅“使用内容流”:

    如果您在正文中发布文本,那将用于相似性。或者,您可以使用以下方式将发布的内容放在 URL 中:

    http://localhost:8983/solr/mlt?stream.body=electronics%20memory&mlt.fl=manu,cat&mlt.interestingTerms=list&mlt.mintf=0

    如果启用了remoteStreaming,您可以在网页上找到类似于文本的文档:

    http://localhost:8983/solr/mlt?stream.url=http://lucene.apache.org/solr/&mlt.fl=manu,cat&mlt.interestingTerms=list&mlt.mintf=0

    【讨论】:

    • 我在文档中看到了这一点,但我想要完成的有点不同。我不想执行单独的查询来检索“更像这样”的命中。我希望它成为我的主要查询的一部分,该查询具有其他搜索条件以及一个 mlt 字段。
    • 除非文档已编入索引,否则我不确定这是否可行
    【解决方案2】:

    我认为这就是您要寻找的: https://wiki.apache.org/solr/MoreLikeThis#MoreLikeThisComponent

    它在搜索中使用 MoreLikeThis 组件,而不是使用单独的处理程序。

    【讨论】:

      猜你喜欢
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 2019-11-22
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 2013-02-24
      • 1970-01-01
      相关资源
      最近更新 更多