一个句子中不同标记的Solr搜索索引

一个句子中不同标记的Solr搜索索引,solr,Solr,各位 我们想在solr上进行搜索,这样它将优先考虑句子中的部分匹配 比如说: 这句话就像“祝你们今天晚上愉快” 如果用户提供“今天在这里”,那么它应该匹配 若用户提供“美妙的夜晚”,那个么它应该匹配 如果用户提供“拥有精彩”,那么它应该匹配 我们想给低优先级的关键字搜索相比,上述 关键词匹配可以是:“今天”“精彩”“晚上”等 由于solr对给定句子中的单词进行反向索引,有什么方法可以实现这一点吗?您可以使用一个单独的字段来定义-这将把标记的运行组合成单独的标记,这样“今天有一个美妙的夜晚”就

各位

我们想在solr上进行搜索,这样它将优先考虑句子中的部分匹配

比如说:

这句话就像“祝你们今天晚上愉快”

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

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

  • 如果用户提供“拥有精彩”,那么它应该匹配

我们想给低优先级的关键字搜索相比,上述

关键词匹配可以是:“今天”“精彩”“晚上”等


由于solr对给定句子中的单词进行反向索引,有什么方法可以实现这一点吗?

您可以使用一个单独的字段来定义-这将把标记的运行组合成单独的标记,这样“今天有一个美妙的夜晚”就可以被索引为“今天有一个美妙的夜晚”、“今天有一个美妙的夜晚”和“今天有一个美妙的夜晚”“今天在这里”

通过使用
qf=shinglefield^
,使此字段中的点击比常规搜索字段中的点击具有更高的优先级-确切的提升值需要取决于索引的得分情况以及您是否正在进行其他提升

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