小弟最近玩了一把hibernate search查询不出来结果不知道为什么。
现在把代码贴上来,大家看看entity:@Entity
@Table(name = "t_hibernate_search_test")
@Indexed(index = "hibernate_search")
public class HibernateSearchTest implements Serializable { /**
 * 
 */
private static final long serialVersionUID = -4988990237224487693L;
private Long id;
private String searchName; @Id
@Column(name = "id", unique = true, length = 19, nullable = false)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "THibernateSearchTestPK")
@TableGenerator(name = "THibernateSearchTestPK", allocationSize = 1, table = "ID_GENERATOR", pkColumnName = "GEN_NAME", pkColumnValue = "THibernateSearchTestPK", valueColumnName = "GEN_VALUE")
@DocumentId
public Long getId() {
return id;
} public void setId(Long id) {
this.id = id;
} @Column(name = "search_name", length = 100)
@Length(max = 100)
@Field(name = "searchName", index = Index.TOKENIZED, store = Store.NO)
public String getSearchName() {
return searchName;
} public void setSearchName(String searchName) {
this.searchName = searchName;
}
}
dao: public List<HibernateSearchTest> findBySearchName(String words) {
FullTextSession fullTextSession = Search.createFullTextSession(this
.getSession());
MultiFieldQueryParser multiFieldQueryParser = new MultiFieldQueryParser(
Version.LUCENE_29, new String[] { "searchName" },
new StandardAnalyzer(Version.LUCENE_29));
try {
Query query1 = multiFieldQueryParser.parse(words);
FullTextQuery fullTextQuery1 = fullTextSession.createFullTextQuery(
query1, HibernateSearchTest.class);
List<HibernateSearchTest> list1 = fullTextQuery1.list();
System.out.println(list1);
return list1;
} catch (ParseException e1) {
e1.printStackTrace();
}
return null;
}
test @Test
public void findBySearchName() {
String words = "hxj";
List<HibernateSearchTest> list = hibernateSearchTestService
.findBySearchName(words);
System.out.println(list.size());
}
事务等其他的问题已经在其他地方做了处理。
我这样查询出来是没有数据的这是为什么?