如何对opencms自定义的结构化模版resources实现search功能呢?
第一步,当然是自定义结构化模版,然后创建资源,这个我就不多讲了,网上有很多。
第二步,是创建索引,在administraion下面有一个serachmanage的功能,点击进入后->New Index->设置搜索路径和文件类型->保存。
第三步,返回searchmanage主界面,点击
view field configuration->new field configration->然后选择刚建好的"field configration",
选择add new Fields->输入name->进入新建的fields->add new mapping->,映射中设置类型为item ,参数为元素名,如Author[1](假如自定义结构化xsd里面有个属性叫做 Author的话,注意后面的"[1] " 是必须的)。
CmsJspActionElement cms = new CmsJspActionElement(pageContext,request,response);
String keywords = "test";
CmsSearch search = new CmsSearch();
search.setMatchesPerPage(20);
search.setDisplayPages(20);
search.setQuery(keywords);
search.setIndex("TestIdx");
String str[] = { "xmlItemName" };
search.setField(str);
search.init(cms.getCmsObject());
List result = search.getSearchResult();
for (int i = 0; i < result.size(); i++) {
CmsSearchResult entry = (CmsSearchResult) result.get(i);
out.print("Name="+entry.getField("xmlItemName"));
}
实际上: index 管的是搜索的路径和文件类型,而field管的是,文件中某个字段的属性。