OpenCms结构化搜索

如何对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管的是,文件中某个字段的属性。

你可能感兴趣的:(cms)