2011-06-25 26 views
0

これは初めての休止状態です。私はインデックスを作成したエンティティを持っていましたので、名前フィールドを検索できます。彼らは何のために検索したときに、それはHibernate Searchは1つの環境で動作しますが、他の環境では動作しません。

は、クエリは、私がこの

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の検索部分があるが、それは0の結果を返し、私のチームメイトのことで私のマシンに取り組んでいます

代理エンティティ

@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検索が初めての方は、インデックスに実際に含まれているものを確認することが面白くて賢明です。

関連する問題