2011-06-25 47 views
0

這是我第一次休眠搜索的嘗試,所以我是新來的。我有一個實體,我讓它索引,所以我可以搜索名稱字段。它是由我的隊友們的工作在我的機器上時,他們尋找任何返回0的結果雖然有在其結束工作的罰款休眠搜索工作在一個環境,但不是其他

查詢我用這個樣子的

public List<Agency> findByText(String text) { 
     FullTextEntityManager ftManager = org.hibernate.search.jpa.Search.getFullTextEntityManager(entityManager); 
    try { 
     return ftManager 
       .createFullTextQuery(
         new MultiFieldQueryParser(new String[] { "name" }, new StandardAnalyzer()).parse(text 
           + "*"), Agency.class).getResultList(); 
    } catch (ParseException e) { 
     log.error("Exception has occurred when trying to execute search", e); 
    } 

    return Collections.emptyList(); 
} 
其他Hibernate Search的部分

機構實體

@Entity 
@Indexed 
@Table(
     name="Agency", 
     uniqueConstraints= 
      @UniqueConstraint(columnNames={"id", "name"}) 
    ) 
public class Agency { 

    @Id 
    @GeneratedValue 
    private Long id; 

    @Field(index = Index.TOKENIZED, store = Store.NO) 
    private String name; 

回答

1

我建議您檢查使用Luke了Lucene索引。這將允許您查看索引的內容,因此您可以期望返回。

這可能是因爲您沒有將事務設置得很正確,而且數據庫更改沒有反映在您的索引中。另外,如果您是Hibernate搜索的新手,那麼看看索引實際包含的內容很有意思並且很有啓發性。