我如何申请Solr' More Like This'组件作为我搜索的一部分

时间:2017-07-29 01:45:51

标签: solr

我正在尝试执行包含“更像这样”的solr查询。零件。无法在文档中找到此方案。这是一个假设的样本产品实体,有两个字段 -

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

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

  • newProduct.product_name - 我想对' product_name'进行简单的基于令牌的搜索。我的索引中的字段。
  • newProduct.product_description - 我想使用此字段来执行“更像这样”的信息。搜索' product_description'我的索引中的字段。

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

如果情况不明确,请告诉我。

2 个答案:

答案 0 :(得分:1)

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

将文档包含为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

答案 1 :(得分:0)

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

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