1

我只需要使用休眠搜索选择几列。以下是工作正常的代码

  FullTextSession fts = org.hibernate.search.Search.getFullTextSession(getSession());

  org.apache.lucene.search.BooleanQuery query = prepareQuery(dto);
  fullTextQuery = fts.createFullTextQuery(query, ProfileBean.class);

  fullTextQuery.setFirstResult(dto.getProfileBean().getResultStartIndex());
  fullTextQuery.setMaxResults(dto.getProfileBean().getResultsLimit());

  List<ProfileBean> profiles = fullTextQuery.list();

在上述情况下,我只想选择列“firstName”和“lastName”。

以下代码引发异常

 List<String> projectedFields = new ArrayList<String>();
          projectedFields.add("firstName");
          projectedFields.add("lastName");

org.hibernate.search.SearchException: Projecting an unstored field: firstName

实际上我不想将 firstName 字段存储在 lucene 中的任何其他建议中。?

4

1 回答 1

1

在您的 ProfileBean 类中,您需要添加注释:

@Field(store=Store.YES)

到田野firstnamelastname

请参阅第 5.1.2.5 节。Hibernate 文档中的投影以获取详细信息: https ://docs.jboss.org/hibernate/search/3.2/reference/en/html/search-query.html#d0e3643

快乐编码!

于 2017-02-08T14:21:46.477 回答