【问题标题】:Solr search index on different tokens of a sentence一个句子不同标记上的 Solr 搜索索引
【发布时间】:2016-02-07 04:28:40
【问题描述】:

伙计们,

我们想在 solr 上进行搜索,以便它会优先考虑句子中的部分匹配。

比如说:

句子就像“今天在这里度过美好的夜晚”

  • 如果用户提供“今天在这里”,那么它应该匹配。

  • 如果用户提供“美妙的夜晚”,那么它应该匹配。

  • 如果用户提供“Have wonderful”,那么它应该匹配。

与上述相比,我们希望对关键字搜索给予较低的优先级。

关键字匹配可以是:“today”“wonderful”“evening”等。

solr 有什么方法可以实现这一点,因为 solr 对给定句子中单词的倒排索引起作用。

【问题讨论】:

    标签: solr


    【解决方案1】:

    您可以使用定义了 SingleFilter 的单独字段 - 这会将一系列标记组合成单独的标记,以便“今天在这里度过美好的夜晚”可以被索引为“度过美好的夜晚”、“美妙的夜晚”、“今天晚上”和“今天在这里”。

    使用qf=shinglefield^<boostvalue> 使该字段中的匹配项比常规搜索字段中的匹配项具有更高的优先级 - 确切的提升值需要取决于您的索引的评分概况以及您是否正在执行其他提升。

    <analyzer>
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="false"/>
    </analyzer>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多