2016-06-07 83 views
0

我有一个使用SnowballPorterFilterFactory来阻止该字段的场景。基于词干的Solr搜索

现在,它存储了所有类型的人才像前:演员,舞者,歌手,模特儿等

出于此帮助我使用

Actor in mumbai 

Actors in mumbai 

两个搜索。

现在我想用

show all who sings in mumbai 

我如何能匹配搜索歌手

它不适合现在匹配..

回答

0

使用Solr的管理界面的“分析”页面看到正在为singer执行什么词干。这允许您查看这两个术语的每个步骤,以及singsinger的最终结果是什么。

这个差异很可能是因为它们实际上并不是同一个词 - 歌手是一个主题,而唱歌是一个动词,并且将它们归因于同一个词可能会导致不好的结果。在这种情况下,您可以通过使用同义词词表获得更好的结果。 singer的正确声明可能仅仅是singer(歌手,歌手)。

+0

感谢您的评论。我已经通过创建自己的字段类型** text_stemming **解决了这个问题,其中我使用了2个过滤器工厂。 ** solr.SnowballPorterFilterFactory **和** solr.EdgeNGramFilterFactory **。现在,雪球将用于**歌手** => **歌手**和EdgeNGramFilterFactory将帮助我进行部分搜索。谢谢 –