Rails sunspot-solr – 带连字符的单词

我正在使用sunspot_rails gem,到目前为止一切都很完美但是:我没有得到任何带连字符的搜索结果。

示例:字符串“tron”返回大量结果(所有文章中提到的单词都是e-tron)

字符串“e-tron”返回0结果,即使这是我所有文章中提到的正确单词。

我当前的schema.xml配置:

             

我想要的:搜索字符串tron的行为当然没问题,但我也想要搜索字符串e-tron的正确匹配。

问题是solr.StandardTokenizerFactory是用连字符分割单词所以“e-tron”生成标记“e”,“tron”。 据推测,“e”作为solr.TextFieldfilter丢失,最小令牌大小为2。

这是一个可以显示您特定问题的示例。

              
  1. solr.WhitespaceTokenizerFactory将在空格上生成标记。 ["e-tron"]
  2. solr.WordDelimiterFilterFactory将拆分连字符,但也保留原始单词。 ["e", "tron", "e-tron"]
Interesting Posts