1 回答
TA贡献1785条经验 获得超8个赞
在 Hibernate Search 5.11(以及自 5.6 或 5.7,IIRC)中,您可以使用LuceneAnalysisDefinitionProvider.
实现接口:
public class CustomAnalysisDefinitionProvider implements LuceneAnalysisDefinitionProvider {
@Override
public void register(LuceneAnalyzerDefinitionRegistryBuilder builder) {
builder.analyzer( "myAnalyzer" )
.tokenizer( KeywordTokenizerFactory.class )
.tokenFilter( ClassicFilterFactory.class )
.tokenFilter( LowerCaseFilterFactory.class )
.tokenFilter( StopFilterFactory.class )
// You can pass parameters like this
.param( "mapping", "org/hibernate/search/test/analyzer/stoplist.properties" )
.param( "ignoreCase", "true" );
// You can define multiple analyzers
builder.analyzer( "otherAnalyzer" )
.tokenizer( ... ) ...
}
}
然后告诉 Hibernate Search 使用它:
# In properties.java
hibernate.search.lucene.analysis_definition_provider = com.mycompany.CustomAnalysisDefinitionProvider;
您可以在 的实现中自由地执行任何操作register,因此您可能可以检查系统属性,甚至加载配置文件。如果您的实现集有限,您还可以在启动 JVM 时通过hibernate.search.lucene.analysis_definition_provider系统属性设置直接覆盖定义提供程序。
添加回答
举报