我已使用solr索引了一个网站。如果未启用词干,它的效果非常好。但是,使用词干分析,solr在搜索单词的根时不会返回任何匹配。我用瑞典语词干。
例如,如果不使用词干,搜索support
会给出匹配。使用词干,搜索support
没有命中。但是,搜索supporten
会返回与support
匹配的匹配。
通过调试查询,我可以看到它将support
一词带到suppor
(顺便说一句,这是不正确的,但这无关紧要)。但是,如果将单词设为suppor
,我希望它能够搜索与原始查询字词匹配的内容。
我很感激你的帮助!
答案 0 :(得分:0)
Afaik,在阻止时没有办法保留原话......
我假设您使用的是solr.SnowballPorterFilterFactory
。雪球算法过于激进。
您应该尝试Hunspell stemmer或solr.SwedishLightStemFilterFactory
。
答案 1 :(得分:0)
您可以执行的解决方法是将查询重新格式化为“支持支持*”或“支持支持〜”。 *是通配符匹配,〜是使用Lucene语法的模糊匹配。我知道你没有提到需要进行通配符和模糊搜索,但我发现在这些情况下,查询上的干扰不会生效,因此保留了“支持”。并且词干在第一个单词上仍然有效,因此如果有的话,两个结果都将被返回。此外,模糊搜索将有助于降低用户查询中拼写错误的容忍度,因此这是一个额外的好处。