我有一个与this question密切相关的问题。
在我的架构中,我有一个字段
<field name="text" type="textgen" indexed="true" stored="true" required="true"/>
这给出了完全匹配,即。阻止残疾
吃=吃
是否有可能,虽然配置为textgen搜索单词的其他变体
例如。吃=吃,吃,吃
吃~0会给出类似的声音,如肉,节拍等。但这不是我想要的。
我开始认为实现这一目标的唯一方法是添加另一个字段,然后添加textgen,但如果有更简单的方法,我很有兴趣听到它。
答案 0 :(得分:6)
使用copyfield
语句是Solr中的常规方法。由于stemming
是您正在询问的答案,因此我建议您使用。如果您担心索引大小,可以设置stored=false
。
您也可以使用lemmatisation
,这与词干相反 - 您可以在其中添加所有变形形式的词。这通常在搜索查询上执行,例如,eat
扩展到eat, eats, eating
等等。
第三种选择可能是使用通配符搜索,但我不鼓励它。尤其是因为它绕过了目标字段的所有模式配置过滤器。
答案 1 :(得分:0)
如果您使用text
作为字段类型,那么吃,吃,吃和吃都将存储为eat
,搜索FieldName:eat
会找到所有这些。如果您将字段类型更改为text-gen
,则搜索FieldName:eat
只会找到“吃”,而不是吃,吃或吃。