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 *」等等。我缺少什麼?
感謝