Hibernate Search在一个环境中工作,但在其他环境中工作

时间:2011-06-25 06:49:12

标签: hibernate hibernate-search

这是我的第一次hibernate搜索尝试,所以我是新手。我有一个实体,我把它编入索引,所以我可以搜索名称字段。每当他们搜索任何返回0结果的东西时,我的队友都在我的机器上工作,尽管还有其他的hibernate搜索部分在他们的最后工作正常

我使用的查询看起来像这样

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();
}

代理实体

@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 个答案:

答案 0 :(得分:1)

我建议您使用Luke检查Lucene索引。这将允许您查看索引的内容,以及您可以期望返回的内容。

可能是您没有正确设置事务,并且数据库更改未反映在索引中。

此外,如果您不熟悉Hibernate,那么查看索引实际包含的内容会很有趣,也很有启发性。