首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于标签的优先搜索相关故事

基于标签的优先搜索相关故事
EN

Stack Overflow用户
提问于 2016-06-28 11:21:40
回答 1查看 55关注 0票数 0

我需要根据一个故事的标签搜索相关的故事。

假设我有一个有4个标签的故事,所以我的相关故事逻辑是

  • 步骤1:搜索故事>>显示故事下的所有4个标记
  • 步骤2:搜索三个标记,创建不同的排列&与标签相关的组合>>显示故事
  • 步骤3:搜索两个标记,创建不同的排列&与标签相关的组合>>显示故事
  • 步骤4:一个接一个地搜索标记,如果在“更像这个”字段中显示相同的标记。

我怎样才能做到这一点。我是索尔的一只新蜜蜂请引导我..。

EN

回答 1

Stack Overflow用户

发布于 2016-06-28 15:30:26

Thomas在评论中的建议是个好主意,但可能会给出错误的结果--例如,如果您有两个非常常见的标记和两个标记,那么这两个故事是唯一的。即:

  • 故事1 (foo,bar,the,is)
  • 故事2 (foo,bar,ask,barf)
  • 故事3 (baz,bar,is,is)
  • 。。用"the“和"is”作为标记重复数千个其他故事

如果在显示第一个条目时搜索tag:(foo OR bar OR the OR is),则可能会得到Story 2--因为它具有最“有价值”的标记( Solr的默认计算使用该术语在文档中出现的次数除以它在文档中出现的文档总数)。

最好的结果可能是(这将取决于您的用例)仍然是Story 2,但是如果您真的想获得与三个标记匹配的文档,那么您必须以不同的方式来完成它。

如果您需要第二个选项,您可以使用函数查询来解决这个问题:termfreq返回一个术语在文档中的次数(如果您的标记在文档中是不同的,这将是1)。sum允许您对每个函数的值进行求和,如下所示:

代码语言:javascript
复制
sum(termfreq(tag, 'foo'), termfreq(tag, 'bar'), termfreq(tag, 'the'), termfreq('is')) 

。。将为用于排序的每个文档提供不同的标记计数。

您还可以选择使用自定义相似类,这将为每个术语返回相同的相似性评分(根据您使用的Solr版本,可以为每个字段(而不仅仅是核心)设置相似性)。我不认为有一个包括在内,but there's plenty of examples available

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38074841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档