【发布时间】:2014-02-17 19:52:08
【问题描述】:
我有以下情况:
对于查询“A B”,我们有完全匹配并且结果得分正确。但是当查询看起来像“A B C”时,结果是错误的,因为 Solr 没有看到“A B”的完全匹配。请帮我以正确的方式配置 Solr,让他在“A B”上找到“短语”匹配。
附:以下查询按预期工作:
A B field:C
"A B" C
【问题讨论】:
标签: solr
我有以下情况:
对于查询“A B”,我们有完全匹配并且结果得分正确。但是当查询看起来像“A B C”时,结果是错误的,因为 Solr 没有看到“A B”的完全匹配。请帮我以正确的方式配置 Solr,让他在“A B”上找到“短语”匹配。
附:以下查询按预期工作:
A B field:C
"A B" C
【问题讨论】:
标签: solr
不确定我是否理解正确,但听起来您需要生成shingles 或NGrams。简而言之,带状疱疹是通过对句子中的单词进行分组来创建的,而边缘 NGram 的工作原理是通过从单词的开头或结尾获取字符来生成单词片段。
来自 Solr 维基:
- Ngrams:尼日利亚 => "ni", "nig", "nige", "niger", "nigeri", "nigeria", "nigeria", "nigerian"
- Shingles:例如,句子“please split this sentence into shingles”可能被标记为 shingles “please divide”,
“把这个”、“这个句子”、“句子分成”和“分成”
带状疱疹”。
由于您希望对部分查询进行匹配,因此您需要将相关过滤器包含到查询分析器中。
【讨论】: