Skip to content

Commit

Permalink
HSEARCH-3589 Expose named analyzers and normalizers through LuceneBac…
Browse files Browse the repository at this point in the history
…kend
  • Loading branch information
yrodiere committed May 6, 2020
1 parent d8e143b commit 07bf865
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 2 deletions.
Expand Up @@ -6,10 +6,26 @@
*/
package org.hibernate.search.backend.lucene;

import java.util.Optional;

import org.hibernate.search.engine.backend.Backend;
import org.hibernate.search.engine.backend.metamodel.IndexValueFieldTypeDescriptor;

import org.apache.lucene.analysis.Analyzer;

public interface LuceneBackend extends Backend {

// No Lucene-specific backend APIs yet
/**
* @param name An analyzer name, e.g. a name returned by {@link IndexValueFieldTypeDescriptor#analyzerName()}
* or {@link IndexValueFieldTypeDescriptor#searchAnalyzerName()}.
* @return The corresponding analyzer, or {@link Optional#empty()} if it doesn't exist.
*/
Optional<? extends Analyzer> analyzer(String name);

/**
* @param name A normalizer name, e.g. a name returned by {@link IndexValueFieldTypeDescriptor#normalizerName()}.
* @return The corresponding normalizer, or {@link Optional#empty()} if it doesn't exist.
*/
Optional<? extends Analyzer> normalizer(String name);

}
Expand Up @@ -7,6 +7,7 @@
package org.hibernate.search.backend.lucene.impl;

import java.lang.invoke.MethodHandles;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;

import org.hibernate.search.backend.lucene.analysis.model.impl.LuceneAnalysisDefinitionRegistry;
Expand Down Expand Up @@ -34,6 +35,7 @@
import org.hibernate.search.util.common.impl.Closer;
import org.hibernate.search.util.common.logging.impl.LoggerFactory;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.search.similarities.Similarity;


Expand Down Expand Up @@ -134,6 +136,16 @@ public Backend toAPI() {
return this;
}

@Override
public Optional<Analyzer> analyzer(String name) {
return Optional.ofNullable( analysisDefinitionRegistry.getAnalyzerDefinition( name ) );
}

@Override
public Optional<Analyzer> normalizer(String name) {
return Optional.ofNullable( analysisDefinitionRegistry.getNormalizerDefinition( name ) );
}

@Override
public IndexManagerBuilder createIndexManagerBuilder(
String indexName, String mappedTypeName,
Expand Down
Expand Up @@ -10,6 +10,6 @@

public interface LuceneIndexManager extends IndexManager {

// No Lucene-specific index manager APIs yet.
// No Lucene-specific backend APIs yet

}

0 comments on commit 07bf865

Please sign in to comment.