2011-11-24 65 views

回答

7

是的,如果您针对未分析的字段类型进行搜索,则匹配是确切的。在默认的Solr模式中,未分析的字段类型被命名为“字符串”(类“solr.StrField”)

编辑:它取决于你的意思是“精确地”。如果您的字段值是“支持台”而您的查询是“支持”,它应该匹配吗?

  • 如果您的答案是肯定的,那么您应该考虑配置词干。
  • 如果您的答案是否定的,即查询必须与字段值相匹配,那么您应该使用字符串(即未分析的)字段类型。

此外,如果您的查询是“支持”和字段值是“支持”,它应该匹配吗?

  • 如果您回答是,那么您应该使用LowerCaseFilterFactory(您不能在字符串字段类型上执行此操作,您将不得不切换到文本字段类型)。
  • 如果您回答否,那么可以使用字符串字段类型。

总之,Lucene/Solr文本分析流水线是非常可配置的,请参阅analyzer docs以获取所有可用选项的参考。

+0

为什么downvote? –

+0

对不起,我的道歉,我正在浏览我的手机,并点击了错误的箭头。 –

+0

谢谢,这对我很有帮助 –

3

你所描述的称为词干。关于堆栈溢出还有另一个几乎完全相同的问题,请查看:Solr exact word search 您需要重新索引并在配置中禁用词干分析。我不认为有可能在查询时做到这一点,因为存储在索引中的是词的词干版本。在你的情况下,“支持”被存储在索引中,甚至显示“支持”。 这应该让你开始How to configure stemming in Solr?

+2

这取决于OP“精确地”意味着什么。这不一定仅限于阻止。 –

+3

你说得对,我认为你的回答是对我的补充。其他转变正在发生,我只是给出了解决方案的例子。同义词,停用词,缩小等等也可以配置。我认为很重要的是,solr用户可以发现配置文件以及配置文件的可配置性。 –

+0

同意! 。 。 。 。 。 。 –