//$Id: BlogEntry.java 13984 2011-01-11 12:45:45Z sannegrinovero $ package domain; import org.apache.solr.analysis.LowerCaseFilterFactory; import org.apache.solr.analysis.NGramFilterFactory; import org.apache.solr.analysis.SnowballPorterFilterFactory; import org.apache.solr.analysis.StandardTokenizerFactory; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.hibernate.search.annotations.*; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Lob; import javax.persistence.ManyToOne; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.util.Date; /** * Represents a blog entry. * * @author Simon Brown * @author Sanne Grinovero */ @Entity @Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) @Indexed @AnalyzerDefs({ @AnalyzerDef(name = "en", tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class), filters = { @TokenFilterDef(factory = LowerCaseFilterFactory.class), @TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = { @Parameter(name = "language", value = "English") }) }), @AnalyzerDef(name = "ngrams", tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class), filters = { @TokenFilterDef(factory = LowerCaseFilterFactory.class), @TokenFilterDef(factory = NGramFilterFactory.class, params = {@Parameter(name = "minGramSize", value = "3"), @Parameter(name = "maxGramSize", value = "3")}) })} ) public class BlogEntry { @Id @Size(min = 1, max = 20) @DocumentId private String id; @NotNull @Size(max = 70) @Fields({ @Field(name = "title:en", analyzer = @Analyzer(definition = "en")), @Field(name = "title:ngrams", analyzer = @Analyzer(definition = "ngrams"))}) private String title; @Size(max=1024) private String excerpt; @NotNull @Lob @Fields({ @Field(name = "body:en", analyzer = @Analyzer(definition = "en")), @Field(name = "body:ngrams", analyzer = @Analyzer(definition = "ngrams"))}) private String body; @NotNull private Date date = new Date(); @ManyToOne @NotNull private Blog blog; public BlogEntry(Blog blog) { this.blog = blog; } BlogEntry() { } public String getId() { return id; } public String getTitle() { return title; } public String getExcerpt() { return excerpt; } public String getBody() { return body; } public Date getDate() { return date; } public void setBody(String body) { this.body = body; } public void setDate(Date date) { this.date = date; } public void setExcerpt(String excerpt) { if ("".equals(excerpt)) excerpt = null; this.excerpt = excerpt; } public void setId(String id) { this.id = id; } public void setTitle(String title) { this.title = title; } }