67,513
社区成员
发帖
与我相关
我的任务
分享
@Indexed(index="htmlMaterialBean")
public class HtmlMaterialBean {
@DocumentId
private String htmlId;
@Field(name="title",store=Store.NO,index=Index.TOKENIZED, analyzer = @Analyzer(impl=ChineseAnalyzer.class))
private String title;
@Field(name="htmlCode",store=Store.NO,index=Index.TOKENIZED, analyzer = @Analyzer(impl=ChineseAnalyzer.class))
private String htmlCode;
private ColumnNodeBean columnNodeBean;
其他代码省略......
}
public class ColumnNodeBean{
private String nodeId;
private String nodeName;
}
<class name="material.bean.HtmlMaterialBean" table="material_html"
dynamic-update="true" dynamic-insert="true" lazy="true">
<cache usage="read-write" />
<id name="htmlId" type="java.lang.String" column="html_id">
<generator class="util.UniqueIdGene" />
</id>
<property name="title" type="java.lang.String" column="title">
</property>
<property name="htmlCode" type="java.lang.String" column="html_code" lazy="true">
</property>
<many-to-one name="columnNodeBean" class="columnnode.bean.ColumnNodeBean" lazy="proxy" column="column_node_id" cascade="none" ></many-to-one>
</class>
public List<HtmlMaterialBean> fullTextSearchForList(String keyWord,String columnNodeId,int pageNum, int pageSize) throws DaoException {
FullTextSession fullTextSession = Search.getFullTextSession(getSession());
String[] keyWords = null;
if(keyWord!=null && keyWord.contains(" ")){
keyWords = keyWord.split(" ");
}else
keyWords = new String[]{keyWord};
BooleanQuery booleanQuery = new BooleanQuery();
MultiFieldQueryParser queryParser = new MultiFieldQueryParser(
new String[]{"title","htmlCode"},new ChineseAnalyzer());
//QueryParser columnParser = new QueryParser("columnNodeId", new ChineseAnalyzer() );
try{
for(String key: keyWords){
if(key!=null && key.trim().length()>0)
booleanQuery.add( queryParser.parse(key), Occur.SHOULD);
}
//booleanQuery.add( columnParser.parse(columnNodeId), Occur.SHOULD);
} catch (ParseException e) {
throw new DaoException(e);
}
Query query = fullTextSession.createFullTextQuery(booleanQuery, HtmlMaterialBean.class,ColumnNodeBean.class);
//query.setMaxResults(2);
List result = query.list();
this.releaseSession(fullTextSession);
return result;
}