私はSpringとHibernateのプロジェクトに取り組んでおり、Hibernate Lucene Searchを使用しています。それはうまく検索していますが、結果を表示している間は次のように表示されます(つまり、タイトルを検索した場合)
[id: 10 | title:easylib, id: 11 | title:IBM, id: 12 | title:Wipro]
しかし、私が望んでいたのは、IDやその他のものではなく、「Wipro」のみを表示することです
これは私のコードです(タイトルのPOJOクラス内):
@Field(index = Index.YES, analyze = Analyze.YES, store = Store.YES)
@Column(name = "title", nullable = false, length = 150)
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
これは私のDAOクラスにあります
private void doIndex() throws InterruptedException {
Session session = getSession();
FullTextSession fullTextSession = Search.getFullTextSession(session);
fullTextSession.createIndexer().startAndWait();
}
private List<CatalogueBase> searchTitle(String queryString) {
Session session = getSession();
FullTextSession fullTextSession = Search.getFullTextSession(session);
QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(CatalogueBase.class).get();
org.apache.lucene.search.Query luceneQuery = queryBuilder.keyword().onFields("subTitle","publishedplace","title").matching(queryString).createQuery();
org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery(luceneQuery, CatalogueBase.class);
List<CatalogueBase> contactList = fullTextQuery.list();
return contactList;
}
@Override
public List<CatalogueBase> getSearchDao(String search) throws InterruptedException {
doIndex();
List<CatalogueBase> result = searchTitle(search);
return result;
}