【问题标题】:Apache solr - more like this scoreApache solr - 更像这个分数
【发布时间】:2012-12-03 14:58:28
【问题描述】:

我有一个包含约 1000 个文档的小型索引,其中只有两个字段: - 标识(字符串) - 内容(text_general)

我注意到,当我通过 id 对相似内容进行 MLT 搜索时,原始文档(其中 id 是搜索到的 id)的得分为 5.241327。 有 1:1 的重复文档,对于重复的内容,它返回分数 = 1.5258181。为什么?为什么 100% 重复时不是 5.241327。

另一个问题是我可以通过在查询中传递一些文本以任何方式按内容获取相似性文档。 示例:

/mlt/?q=content:Some encoded long text&mlt.fl=content

我正在尝试检查是否上传了类似的内容,并且必须在新内容上传时执行检查。

【问题讨论】:

    标签: apache solr


    【解决方案1】:

    可能值得尝试一些不同的参数。我也只在一个字段上使用 MLT,我使用以下参数:

    'mlt.boost': '真', 'mlt.fl': 'my_field_name', 'mlt.maxqt': 1000, 'mlt.mindf': '0', 'mlt.mintf': '0', 'qt': 'mlt', “行”:“10”

    有关参数的说明,请参阅http://wiki.apache.org/solr/MoreLikeThis。我认为使用小的索引 mintf 可能很重要,我看到默认的 mintf(词频)是 2,所以我假设 ID 只有一个词,所以这可能会被忽略!

    【讨论】:

    • 查询这个:192.168.2.100:8983/solr/site/… 结果:link
    • 那么我怎么知道搜索内容是相似的,即使分数是0.001它也会返回匹配。我的目标是找到至少 50% 或更多相同的内容。
    • 当我查看 moreLikeThis 结果(不是第一个元素“响应”,而是第二个)时,我看到两个高分(3.564 和 3.559),ID 为 281 和 111,一个非常低(0.018 ) 的 ID 为 131。这不是您所期望的吗?
    • 我很困惑。你能告诉我你是否知道如何让 solr 返回与我传递给查询的内容至少有 50% 相似的文档(通常是长文本 - 至少 1000 个字符)。或者如果 solr 仅返回 true 或 false('是的,有类似的文档'或'不,没有类似的文档'),它也适合。
    • 我想指出,我发现 solr 当前正在运行布尔查询,因为文本已转换为 If+you+have+some+tool... 换句话说,空格被替换为 + 和我遇到异常的日志告诉我最大条件(1024)被开销了。也许这就是不返回正确结果的原因:S
    【解决方案2】:

    首先,Solr More-Like-This 是如何工作的?

    1. 执行常规 Solr 查询(例如“?q=content:Some encoded long text&.....”。
    2. 对于上述查询返回的每个文档,More-Like-This 进行More like this 查询... 因此,第一个结果集“响应”就像任何 Solr 查询结果集一样。 More-Like-This 出现在下面并以类似的内容开头(Json 格式): “更喜欢这个”:{ "57375":{"numFound":18155,"start":0,"docs":["

    有关 More Like This 算法的解释,请阅读: http://blog.brattland.no/node/18 和:http://cephas.net/blog/2008/03/30/how-morelikethis-works-in-lucene/

    如果您还没有解决问题,请告诉我,我会指导您完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多