@TokenFilterDef(factory = LowerCaseFilterFactory.class), @TokenFilterDef(factory = EdgeNGramFilterFactory.class, params = { @Parameter(name = "minGramSize", value = "2"), @Parameter(name = "maxGramSize", value = "20") }) }), @AnalyzerDef(name = LuceneAnalyzers.ANYWHERE_ANALYZER, @TokenFilterDef(factory = LowerCaseFilterFactory.class), @TokenFilterDef(factory = NGramFilterFactory.class, params = { @Parameter(name = "minGramSize", value = "2"), @Parameter(name = "maxGramSize", value = "20") }) }) })
@Override @Transient @Field(name = IndexFieldLabels.CONTENT, bridge = @FieldBridge(impl = StringListBridge.class, params = { @Parameter(name = "case", value = "fold"), @Parameter(name = "ngrams", value = "multisize") })) @AnalyzerDiscriminator(impl = TextContainerAnalyzerDiscriminator.class) public List<String> getContents() { List<String> contents = new ArrayList<String>(); boolean populating = false; for (int i = MAX_PLURALS - 1; i >= 0; i--) { String c = this.getContent(i); if (c != null) { populating = true; } if (populating) { contents.add(0, c); } } return contents; }
@Field(bridge = @org.hibernate.search.annotations.FieldBridge(impl = TypeAssertingFieldBridge.class, params = @Parameter(name = "type", value = "java.lang.Object"))) public Object getTest() { return test; } }
@Field(store = Store.YES, bridge = @FieldBridge(impl = TruncateStringBridge.class, params = @Parameter(name = "dividedBy", value = "4")) ) public String getCustomStringBridge() { return customStringBridge; }
factory = ElasticsearchCharFilterFactory.class, params = { @Parameter(name = "type", value = "'pattern_replace'"), @Parameter(name = "pattern", value = "'[^0-9]'"), @Parameter(name = "replacement", value = "'0'"), @Parameter(name = "tags", value = "'CASE_INSENSITIVE|COMMENTS'") factory = EdgeNGramTokenizerFactory.class, params = { @Parameter(name = "minGramSize", value = "1"), @Parameter(name = "maxGramSize", value = "10") factory = ElasticsearchTokenFilterFactory.class, params = { @Parameter(name = "type", value = "'keep_types'"), @Parameter(name = "types", value = "['<NUM>','<DOUBLE>']")
factory = ElasticsearchCharFilterFactory.class, params = { @Parameter(name = "type", value = "'pattern_replace'"), @Parameter(name = "pattern", value = "'[^0-9]'"), @Parameter(name = "replacement", value = "'0'"), @Parameter(name = "tags", value = "'CASE_INSENSITIVE|COMMENTS'") factory = ElasticsearchTokenizerFactory.class, params = { @Parameter(name = "type", value = "edgeNGram"), @Parameter(name = "min_gram", value = "1"), @Parameter(name = "max_gram", value = "'10'") factory = ElasticsearchTokenFilterFactory.class, params = { @Parameter(name = "type", value = "'keep_types'"), @Parameter(name = "types", value = "['<NUM>','<DOUBLE>']") factory = ElasticsearchTokenFilterFactory.class, params = { @Parameter(name = "type", value = "'word_delimiter'"), @Parameter(name = "generate_word_parts", value = "false")
@Indexed @NormalizerDef(name = "ngram", charFilters = { @CharFilterDef(factory = PatternReplaceCharFilterFactory.class, params = { @Parameter(name = "pattern", value = "[[:digit:]]+"), @Parameter(name = "pattern", value = "[[:digit:]]"), // Illegal: mentioned the same Parameter name again @Parameter(name = "replacement", value = "0") }) }) static class SampleWithNormalizer { @DocumentId long id; @Field(normalizer = @Normalizer(definition = "ngram")) String description; }
@Indexed @Entity @NormalizerDef( name = "normalizerWithElasticsearchFactories", charFilters = @CharFilterDef( name = "custom-char-mapping-esFactory", factory = ElasticsearchCharFilterFactory.class, params = { @Parameter(name = "type", value = "'mapping'"), @Parameter(name = "mappings", value = "['foo => bar']"), } ), filters = @TokenFilterDef( name = "custom-elision-esFactory", factory = ElasticsearchTokenFilterFactory.class, params = { @Parameter(name = "type", value = "'elision'"), @Parameter(name = "articles", value = "['l', 'd']") } ) ) public static class AnalyzedEntity { @DocumentId @Id Long id; @Field(normalizer = @Normalizer(definition = "normalizerWithElasticsearchFactories")) String myField; }
@Indexed @Entity @NormalizerDef( name = "normalizerWithElasticsearchFactories", charFilters = @CharFilterDef( name = "custom-char-mapping-esFactory", factory = ElasticsearchCharFilterFactory.class, params = { @Parameter(name = "type", value = "'mapping'"), @Parameter(name = "mappings", value = "['foo => bar']"), } ), filters = @TokenFilterDef( name = "custom-elision-esFactory", factory = ElasticsearchTokenFilterFactory.class, params = { @Parameter(name = "type", value = "'elision'"), @Parameter(name = "articles", value = "['l', 'd']") } ) ) public static class NormalizedEntity { @DocumentId @Id Long id; @Field(normalizer = @Normalizer(definition = "normalizerWithElasticsearchFactories")) String myField; } }
/** * @author Emmanuel Bernard */ @Entity @Indexed @AnalyzerDef(name = "ngram", tokenizer = @TokenizerDef( factory = StandardTokenizerFactory.class), filters = @TokenFilterDef( factory = NGramFilterFactory.class, params = { @Parameter(name = "minGramSize", value = "3"), @Parameter(name = "maxGramSize", value = "3") }) ) public class RemoteEntity { @Id @DocumentId @GeneratedValue public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } private Integer id; @Field(store = Store.YES, termVector = TermVector.WITH_POSITION_OFFSETS, boost = @Boost(23f) ) public String getName() { return name; } public void setName(String name) { this.name = name; } private String name; @Field(analyzer = @Analyzer(definition = "ngram")) @NumericField(precisionStep = 2) public Float getApproximation() { return approximation; } public void setApproximation(Float approximation) { this.approximation = approximation; } private Float approximation; }
@Indexed public static class Foo { @DocumentId private Long id; @Field(bridge = @org.hibernate.search.annotations.FieldBridge(impl = TypeAssertingFieldBridge.class, params = @Parameter(name = "type", value = "java.lang.Integer"))) private Integer test; public Foo(Long id) { this.id = id; } }
@AnalyzerDef(name = "textAnalyzer", tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class) , filters = { @TokenFilterDef(factory = LowerCaseFilterFactory.class), @TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = { @Parameter(name = "language", value = "English") }) }) public abstract class AbstractBookEntity {
@Indexed @ClassBridge(impl = AppliedOnTypeAwareBridgeTest.TypeAssertingFieldBridge.class, params = @Parameter(name = "type", value = "org.hibernate.search.test.bridge.AppliedOnTypeAwareBridgeTest$Snafu")) public static class Snafu { @DocumentId private Long id; public Snafu(Long id) { this.id = id; } }
@TokenFilterDef(factory = LowerCaseFilterFactory.class), @TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = { @Parameter(name = "language", value = "English") }) }) public class BookEntity {
store = Store.YES, impl = CatFieldsClassBridge.class, params = @Parameter(name = "sepChar", value = " ")) public class Department { private int id;
@Indexed @AnalyzerDef(name = "ngram", tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class), filters = { @TokenFilterDef(factory = EdgeNGramFilterFactory.class, params = { @Parameter(name = "maxGramSize", value = "1"), @Parameter(name = "maxGramSize", value = "15") // Illegal: mentioned the same Parameter name again }) }) static class SampleWithAnalyzer { @DocumentId long id; @Field(analyzer = @Analyzer(definition = "ngram")) String description; }
@FieldBridge( impl = PaddedIntegerBridge.class, params = { @Parameter(name = "padding", value = "4") }
/** * @author Hardy Ferentschik */ @Indexed @AnalyzerDef(name = "my-analyzer", tokenizer = @TokenizerDef(factory = PatternTokenizerFactory.class, params = { @Parameter(name = "pattern", value = "|") }), filters = { @TokenFilterDef(factory = StandardFilterFactory.class) }) public class Entity2 { @DocumentId private long id; public long getId() { return id; } public void setId(long id) { this.id = id; } }
@FieldBridge( impl = MapAsInnerObjectFieldBridge.class, params = @Parameter(name = MapAsInnerObjectFieldBridge.DYNAMIC, value = "true")
@TokenFilterDef(factory = LowerCaseFilterFactory.class), @TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = { @Parameter(name = "language", value = "English") }) })