0
我有一个字段,我希望将其视为单个字符串,同时从中剥离所有非字母数字字符。如何在使用hibernate search/lucene进行索引期间去除空格和特殊字符
例如,我想将“123 456.78-9”标记为“123456789”。为了做到这一点,我一直在试图定义我自己的分析仪。根据solr页面KeywordTokenizerFactory会将字符串视为一个单词,我可以使用PatternReplaceFilterFactory按照我的意图删除字符。
我用我的代码中使用以下定义,它不工作:
@AnalyzerDef(name = "strippinganalyzer",
tokenizer = @TokenizerDef(factory = KeywordTokenizerFactory.class),
filters = {
@TokenFilterDef(factory = PatternReplaceFilterFactory.class,
params = {
@org.hibernate.search.annotations.Parameter(name = "pattern", value="([^a-zA-Z0-9])"),
@org.hibernate.search.annotations.Parameter(name="replacement", value=""),
@org.hibernate.search.annotations.Parameter(name="replace", value="all")
}
)
})
这符合“123 *”,而不是“1234 *”等等。我缺少什么?
感谢