2

我有一个与这个问题密切相关的问题

在我的架构中,我有一个字段

<field name="text" type="textgen" indexed="true" stored="true" required="true"/>

这给出了完全匹配,即。词干禁用

吃=吃

是否有可能,同时配置为 textgen 以搜索单词的其他变体

例如。吃=吃,吃,吃

eat~0 会给出类似的发音词,例如肉、节拍等,但这不是我想要的。

我开始认为实现这一点的唯一方法是添加另一个字段,而不是 textgen,但如果有更简单的方法,我很想听听。

4

2 回答 2

7

使用copyfield语句是 Solr 中的常规方法。由于stemming正是您所要求的答案,因此我建议您使用它。stored=false如果您担心索引大小,您可以设置。

您也可以使用lemmatisation,这与词干提取相反 - 您可以在其中添加所有变形形式的单词。这通常在搜索查询上执行,例如扩展eateat, eats, eating等。

第三种选择可能是使用通配符搜索,尽管我不鼓励这样做。尤其是因为它绕过了目标字段的所有模式配置过滤器。

于 2011-06-21T20:39:16.373 回答
1

如果你使用text作为字段类型,那么吃,吃,吃和吃都将被存储为eat,搜索FieldName:eat将找到所有这些。如果您将字段类型更改为text-gen然后搜索FieldName:eat将只找到“吃”,而不是吃、吃或吃。

于 2011-06-22T02:46:16.067 回答