2017-05-30 5 views
0

Ich habe einen benutzerdefinierten Analysator erstellt, die ich jetzt standardmäßig sein möchte. Mein Analysator wie folgt aussieht:Hibernate Search kann nicht Standard-Tokenizer

@AnalyzerDef(name="customanalyzer", 
tokenizer = @TokenizerDef(factory = WhitespaceTokenizerFactory.class), 
filters = { 
    @TokenFilterDef(factory = LowerCaseFilterFactory.class), 
}) 

und es funktioniert super. Aber ich muss auf jede Entität schreiben

@Analyzer(definition = "customanalyzer") 

die ich nicht möchte. Es funktioniert perfekt für die Filter

Also versuchte ich meinen Analysator in meine application.yml zu setzen, aber nicht für die tokenizer

Mein application.yml wie folgt aussieht:

spring: 
    ... 
    jpa: 
    hibernate: 
     ... 
    properties: 
     hibernate: 
     search: 
      default: 
      directory_provider: filesystem 
      indexBase: [removed] 
      analyzer: 
      tokenizer: WhitespaceTokenizerFactory <-- this line is not working 
      filter: LowerCaseFilterFactory 

Kann mir jemand helfen ? Vielen Dank im Voraus

Antwort

2

Sie den Standard-Analysator für alle Entitäten festlegen können die Konfigurationseigenschaften mit:

hibernate.search.analyzer=customanalyzer 
+0

Wahr. Sie können Tokenizer/Filter/etc nicht definieren. Verwenden Sie in Ihren Konfigurationseigenschaften nur eine vorhandene Analysedefinition (in Ihrem Fall "customanalyzer") oder eine Analysatorimplementierung (z. B. "org.apache.lucene.analysis.standard.StandardAnalyzer"). –

+0

dank euch beiden – Robert

Verwandte Themen