在做检索的二次开发中,会出现需要拼多层级检索条件。

例如在学术服务平台项目中

1

首先要通过检索词,查到结果,然后在根据检索结果的分类进行二次检索

假设此处选中类别“图书”“文章”类型进行二次检索

此处所需要的就是 检索词的条件 并且 (图书 或者 文章),需要把类型做为一个整体与检索词条件是并且的关系,如果选中了多个类型,类型之间是或者的关系。

实现代码如下:

SearchParameters sps = new SearchParameters();

SearchParameters subSps = new SearchParameters();

subSps.addFulltextFieldEx("Title", query, false);

subSps.addFulltextFieldEx("Content", query, false);

subSps.addFulltextFieldEx("KeyWord", query, false);

subSps.addFulltextFieldEx("Author", query, false);

subSps.addFulltextFieldEx("AbstractCH", query, false);

subSps.addFulltextFieldEx("AbstractEN", query, false);

SearchParameters contentTypeSps= new SearchParameters();

for(String contentType:contentTypes.split(";")){

    sps.addEqualField("ContentType",contentType, false);

}

sps.addSub(subSps,true);//添加子级检索条件

sps.addSub(contentTypeSps,true);