【问题标题】:Tolerant phrase search容错词组搜索
【发布时间】:2013-06-16 22:33:37
【问题描述】:

我如何对诸如“the quick brown fox”之类的短语执行 solr 搜索,允许漏掉 n 个单词,以便找到以下字符串(对于 n = 2):

  • “敏捷的棕狐”
  • “快速棕色”
  • “狐狸精”
  • “迅捷棕狐”
  • “棕狐”
  • “快”
  • “棕色”
  • “狐狸”
  • “快速棕色”
  • “快狐”
  • “棕狐”

我想将 n 作为参数传递。 slop可以解决这个问题吗?

【问题讨论】:

  • 您能否详细说明 $n$ 的实际含义?
  • 您要搜索一组文档。您传递了一个搜索短语,并且还传递了应该匹配的单词数 (n)。我的理解正确吗?
  • 抱歉不够具体:我传递了一个搜索短语,传递了 n允许遗漏的单词。但是单词的顺序应该很重要。其余的单词应该完全匹配。 (这就是我不想称之为模糊短语搜索的原因。)
  • 我觉得你可能需要编写自己的分词器,它会按照它们出现的相同顺序对每个词进行索引。它也应该组合成 1's、2's、3's 等,然后搜索短语应该与那些长度与 n 的值相同的组合匹配。
  • 对于我这个初学者来说,这听起来太复杂了。我正在寻找开箱即用的东西。但也许没有这样的? (我发现这个要求非常简单和自然...... - 类似于模糊搜索短语。)

标签: solr lucene


【解决方案1】:

您可以检查 Edismax 解析器,它允许您指定 minimum match 参数来调整您想要在查询中匹配的单词数。

您可以定义一个默认值,并让它每次都被查询覆盖。

您还可以检查是否对the 使用了停用词过滤器,以便它根本不需要匹配。

【讨论】:

    猜你喜欢
    • 2012-09-16
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多