@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") }) }) })
/** * Converts the Parameter key/value pairs in a map, and validates * against conflicting duplicates. * Any duplicate will cause to throw a SearchException * @param parameters * @return a new Map instance containing the key/value pairs * @throws org.hibernate.search.exception.SearchException */ public static Map<String, String> toNewMutableMap(Parameter[] parameters) { Map<String, String> map = new LinkedHashMap<>(); if ( parameters != null ) { for ( Parameter param : parameters ) { String previous = map.put( param.name(), param.value() ); if ( previous != null ) { throw log.conflictingParameterDefined( param.name(), param.value(), previous ); } } } return map; }
@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; }
/** * Converts the Parameter key/value pairs in a map, and validates * against conflicting duplicates. * Any duplicate will cause to throw a SearchException * @param parameters * @return a new Map instance containing the key/value pairs * @throws org.hibernate.search.exception.SearchException */ public static Map<String, String> toNewMutableMap(Parameter[] parameters) { Map<String, String> map = new LinkedHashMap<>(); if ( parameters != null ) { for ( Parameter param : parameters ) { String previous = map.put( param.name(), param.value() ); if ( previous != null ) { throw log.conflictingParameterDefined( param.name(), param.value(), previous ); } } } return map; }
@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; }
store = Store.YES, impl = CatDeptsFieldsClassBridge.class, params = @Parameter(name = "sepChar", value = " ")), @ClassBridge(name = "equiptype", store = Store.YES, impl = EquipmentType.class, params = { @Parameter(name = "C", value = "Cisco"), @Parameter(name = "D", value = "D-Link"), @Parameter(name = "K", value = "Kingston"), @Parameter(name = "3", value = "3Com") }) })
@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; } }
@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; }
/** * @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; }
@Parameter(name = "words", value = "org/jtalks/jcommune/lucene/english_stop.txt"), @Parameter(name = "ignoreCase", value = "true") }), @TokenFilterDef(factory = StopFilterFactory.class, params = { @Parameter(name = "words", value = "org/jtalks/jcommune/lucene/russian_stop.txt"), @Parameter(name = "ignoreCase", value = "true") }), params = @Parameter(name = "language", value = "Russian")) @Parameter(name = "words", value = "org/jtalks/jcommune/lucene/english_stop.txt"), @Parameter(name = "ignoreCase", value = "true") }), @TokenFilterDef(factory = StopFilterFactory.class, params = { @Parameter(name = "words", value = "org/jtalks/jcommune/lucene/russian_stop.txt"), @Parameter(name = "ignoreCase", value = "true") }),
@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; } }
@TokenFilterDef(factory = StopFilterFactory.class), @TokenFilterDef(factory = EdgeNGramFilterFactory.class, params = { @Parameter(name = "minGramSize", value = "3"), @Parameter(name = "maxGramSize", value = "30") }) }), @TokenFilterDef(factory = StopFilterFactory.class), @TokenFilterDef(factory = EdgeNGramFilterFactory.class, params = { @Parameter(name = "minGramSize", value = "4"), @Parameter(name = "maxGramSize", value = "8") }) })
@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; } }
@CharFilterDef(factory = HTMLStripCharFilterFactory.class), @CharFilterDef(factory = MappingCharFilterFactory.class, params = {@Parameter( name = "mapping", value = "kangaroo-char-mapping.properties")} @TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = { @Parameter(name = "language", value = "English") }), @TokenFilterDef(