• 文章检索

文章检索服务

/_wp3services/generalQuery?queryObj=articles由第三方在页面向文章检索服务地址()发送请求。

当文章检索服务响应请求分别对其请求的条件、排序及返回信息进行解析,解析成功,根据请求参数,以json格式返回文章相关属性。

注意:

条件、排序和返回信息是以json字符串向文章检索服务发送请求。

 JSON.stringify()IE8是未定义的,为了兼容需引用“/_js/json/json2.js


1.1 请求参数说明

参数名

说明

备注

queryObj

用于区分查询的对象类型,目前包含articles(文章)

必填

siteId

站点ID

必填

columnId

栏目ID
注意:若没有栏目Id,则默认是当前站点的根栏目


pageIndex

页码,默认为1


rows

查询条数,默认为10


returnAttr

当值为1时,仅返回文章的属性


allUrl

说明:
手机app及手机端的访问地址需要加http://域名:端口/具体访问地址
Pc
不需要显示地址及附件访问全路径
1
:表示显示完整访问路径
0
或不填:表示不加http和域名显示
注意:v1607以后版本支持


conditions

条件


orders

排序


reqModule1:返回content 内容时使用,

returnInfos

请求返回属性


allImgs

是否显示所有图片(版本v16077之前版本使用)
目前是在returnInfos中请求返回属性

过时

scope

查询范围(版本v16077之后版本使用)
版本v16077之前版本使用:在conditions参数中,作为条件参数传参

新增


1.2 请求参数站点Id和栏目Id获取方式

 u 获取站点Id

方式一:

通过站点地图(域名/_sites

方式二:

通过站点检索服务地址 (域名/_wp3services/generalQuery?queryObj=sites&scope=1

 u 获取栏目Id

方式一:审查元素

在栏目管理中,找到对应栏目,采用审查元素方式,获取栏目Id

方式二:采用栏目检索服务地址

域名/_wp3services/generalQuery?queryObj=columns&siteId=2&scope=1 


1.3 查询条件(conditions)

json字符,向文章检索服务发送请求;查询条件,支持复合查询条件设置。

属性描述:

 conditions查询条件,多个条件之间为And连接,内部允许嵌套 orConditions

 orConditions查询条件,多个条件之间为or连接,内部允许嵌套 conditions

 field条件字段名称

 judge关系符,目前包括“=<><=>=like”

 value值,请求字段的值

例如:

[
    {
        orConditions: [
            {field: "author", value: "谷子", judge: "like"},
            {field: "creator", value: "系统管理员", judge: "like"}
        ]
    },
    {
        conditions: [
            {
                orConditions: [
                    {field: "title", value: "%菊花%", judge: "like"},
                    {field: "key", value: "Ch", judge: "like"}
                ]
            },
            {
                orConditions: [
                    {field: "imgLogo", value: "true", judge: "="},
                    {field: "fileLogo", value: "true", judge: "="}
                ]
            }
        ]
    }
];
/*
查询条件属性目前包括(后期可扩展):
title:          标题
creator:        创建者
createTime: 创建时间
createOrgId:    机构Id
folderIds:      文件夹Id
author:     作者
source:     文章来源
summary:        简介
key:            关键字
allKeys:        关键字查询(包括标题、作者、关键字及内容中含有此关键的查询)
infoCode:       文号
scope:          范围(1当前及子,0当前)
categoryId: 文章分类Id
imgLogo:        图片标识,(值是true,否为false)
fileLogo:       附件标识,(值是true,否为false)
videoLogo:      视频标识,(值是true,否为false)
f1~f50:     扩展字段1至扩展字段50
top:            置顶
new:            最新
hot:            热门
publishTime:    发布时间
publisher:      发布者
*/

条件属性:

参数名

说明

备注

id

文章Id


title

文章标题


artTypeId

文章类型


publishTime

发布时间


publisher

发布人


visiCount

浏览量


content

文章内容


infoCode

文号


categoryId

文章分类Id

文章所属分类

newest

是否最新


hot

是否是热点


shortTitle

短标题


subTitle

副标题


summary

简介


creatorId

创建者Id


createTime

创建时间


createOrgId

创建部门Id


author

文章作者


editor

责任编辑


source

文章来源


key

关键字


size

大小


score

分数

V15061不支持

f1~f50

扩展字段





  

1.4 排序(orders)

排序方式,支持多重排序,默认为栏目设置的排序方式。

例如:

[
 {field: 'id', type: 'desc'},
 {field: 'createTime', type: 'desc'},
 {field: 'top', type: 'desc'},
 {field: 'visitCount', type: 'desc'}
];

属性说明

 field需要排序的文章属性

 type排序方式,升序(asc降序(desc默认为升序


1.5 返回属性(returnInfos)
  1. 返回属性,是指第三方请求时需要哪些文章属性,由第三方发送请求,文章检索服务接收到请求,根据第三方请求返回文章属性。

  2. 返回属性,若第三方未请求返回属性,由系统返回默认文章输出属性。

  3. 返回属性,支持自定义;提供字数、日期格式设置等属性。

属性说明

  1.  name:文章检索服务系统中的属性

  2.  field:自定义字段命名称

  3.  pattern:格式自定义

  4.  name:格式名称

  5.  value:格式值

格式设置(pattern

格式名称(name

格式值(value

备注

l

任意数字

字符长度

lp

任意数字

取满足长度的字符,余下的以“…”代替

d

² 'yyyy-MM-dd'(--)

² 'MM-dd'(-)

² 'yyyy-MM-dd HH'(--日 时)

² 'yyyy-MM-dd HH:mm'(--日 时:)

² 'yyyy-MM-dd HH:mm:ss'(--日 时::)

² 'yyyy/MM/dd'(//)

² 'MMDD'(MMDD)

² 'yyyyMMdd'(yyyyMMdd)

² 'yyyyMMddhh'(yyyyMMddhh)

日期的格式

例如

[
    {name: " title "},
    {field: "mytitle", name: " title "},
    {field: " mytitle ",pattern: [{name: "l",value: "10"}], name: "title"}
]
/*
json说明:
mytitle:自定义标题
title:标题
mytitle:标题名称,取10个字符,输出
*/


1.6 结果返回值默认属性说明

参数名

说明

备注

total

数据总条数


lastPageNum

最后页面显示条数


pageCount

总页数


startExeTime

开始执行时间


endExeTime

查询花费时间


data

[
{'folderName':'
额额','code':'0300000-2015-0004','filePath':'','creator':'系统管理员
','summary':'','id':448,'title':'ddddddd','wapUrl':'/_s9/01/c0/c177a448/pagem.psp','url':'/_s9/01/c0/c177a448/page.psp','publishTime':'2015-07-23 14:24:04','publisher':'
系统管理员','visitCount':10,'mircImgPath':''}
]
文章属性,若只需返回文章属性,则需要在ajax请求参数设置returnAttr值为1;否则返回非默认json



1.7 文章属性

参数名

说明

备注

id

文章Id

默认输出

title

文章标题

默认输出

publishTime

发布时间

默认输出

publisher

发布人

默认输出

visitCount

浏览量

默认输出

url

文章访问地址

默认输出,访问文章模板页面链接地址

link文章外链地址访问文章的外链地址(有版本要求)

wapUrl

(手机)文章访问地址

默认输出

mircImgPath

缩略图

默认输出

content

文章内容
{
'count': 1,
 'data': [
 content: '
内容1', content: '内容2'
]}

改输出模式仅在版本v16077以后版本支持

infoCode

文号


category

文章分类名称

文章所属分类,多个逗号分隔

color

文章标题颜色

标题样式

bold

标题是否加粗

标题样式

top

是否置顶


newest

是否最新


hot

是否是热点


topImg

置顶图标


newImg

最新图标


hotImg

热点图标


imgPath

图片的路径


imgName

图片名称


filePath

附件的路径


fileName

附件名称


videoPath

视频路径


videoName

视频名称


audioPath

音频路径


audioName

音频名称


shortTitle

短标题


subTitle

副标题


summary

简介


creator

创建者


creatorId



createTime

创建时间


createOrg

创建部门名称


author

文章作者


editor

责任编辑


source

文章来源


key

关键字


publishOrg

发布部门名称


size

大小


score

分数

V16077以上版本支持

downLoads

下载次数

V16077以上版本支持

f1~f50

扩展字段


allImg

图片
allImg': {
'count': 3,
'imgdata': [{
'imgUrl': '
图片访问地址1'
}, {
'imgUrl': '
第二个图片访问地址'
}, {
'imgUrl': '
第三个图片访问地址'
}]}

获取文章中多张图

coverImgPath

封面图

V6061以上不支持

artTypeId

文章类型Id

V16077以上版本支持

artTypeName

文章类型名称

V16077以上版本支持

score

文章评分

V16077以上版本支持

downLoads

文章下载次数

V16077以上版本支持

phColId

发布栏目Id

V16077以上版本支持

phColName

发布栏目名称

V16077以上版本支持

phColUrl

发布栏目Url

V16077以上版本支持

imgLogo

是否是图片文章

V16077以上版本支持

fileLogo

是否是附件文章

V16077以上版本支持

videoLogo

是否是视频文章

V16077以上版本支持

audioLogo

是否是音频文章

V16077以上版本支持

  

1.8 返回json数据格式

默认返回json格式

{
    "total":9,
    "data":[
         {"folderName":"额额","code":"0300000-2015-0004",
         "filePath":"","creator":"系统管理员",
         "summary":"","id":448,"title":"ddddddd",
         "wapUrl":"/_s9/01/c0/c177a448/pagem.psp",
         "url":"/_s9/01/c0/c177a448/page.psp",
         "publishTime":"2015-07-23 14:24:04",
         "publisher":"系统管理员","visitCount":10,"mircImgPath":""
         }
    ],
    "lastPageNum":4,
    "pageCount":2,
    "startExeTime":1438146506082,
    "endExeTime":"34.946"
}

仅返回文章属性json格式

[
    {
        'folderName':'额额',
        'code':'0300000-2015-0004',
        'filePath':'',
        'creator':'系统管理员',
        'summary':'','id':448,
        'title':'ddddddd',
        'wapUrl':'/_s9/01/c0/c177a448/pagem.psp',
        'url':'/_s9/01/c0/c177a448/page.psp',
        'publishTime':'2015-07-23 14:24:04',
        'publisher':'系统管理员',
        'visitCount':10,'mircImgPath':''
    },
    {
        'folderName':'学校概况',
        'code':'0100000-2015-0006',
        'filePath':'','creator':'系统管理员',
        'summary':'ddddcc,guzi','id':426,
        'title':'sddddddddddd',
        'wapUrl':'/_s9/01/aa/c107a426/pagem.psp',
        'url':'/_s9/01/aa/c107a426/page.psp',
        'publishTime':'2015-07-23 13:09:18',
        'publisher':'系统管理员',
        'visitCount':10,'mircImgPath':''
    }
]

 

实例应用:

var url = http://172.18.10.8:8080/_wp3services/generalQueryvar?queryObj=articles';
//查询条件
var conditdata = [
    {field: 'key', value: key, judge: 'like'},
    {field: 'author', value: author, judge: 'like'},
    {field: 'creator', value: creator, judge: 'like'},
    {field: 'publishTime', value: beginPt, judge: '>='},
    {field: 'publishTime', value: endPt, judge: '<'},
    {field: 'categoryId', value: catalogs, judge: 'in'},
    {field: 'scope', value: 1, judge: '='}
];
//请求返回参数
var returnInfosdata = [
    {name: 'folderName'},
    {field: 'code', name: 'f11'},
    {name: 'filePath'},
    {name: 'creator'},
    {name: 'summary'}
];
//排序参数
var orderData = [
    {field: 'visitCount', type: 'desc'},
    {field: 'publicTime', type: 'desc'},
    {field: 'createTime', type: 'desc'},
    {field: 'top', type: 'desc'}
];
var orders = JSON.stringify(orderData);
var conditions = JSON.stringify(conditdata);
var returnInfos = JSON.stringify(returnInfosdata);
//向文章检索服务发送请求
$.ajax({
    url:url,
    type: 'POST',
    async: false,
    dataType: 'json',
    data: {siteId: siteId, columnId: 17, pageIndex: 1, rows: 10, conditions: conditions, orders: orders, returnInfos: returnInfos },
    success: function(result) {}
});


3 实例展示

3.1案例一 (普通列表页)


代码

$(function(){
var articleUrl = "/_wp3services/generalQuery?queryObj=articles";
var siteId = 120; //站点Id
var columnId = $(".col_title").data("col-id"); //多个以英文逗号分隔
var pageIndex = 1; //从某页开始
var rows = 14; //每页显示多少篇文章
var text = "";
/*$("#login_search .search").on("click",function(){
    text = $.trim($("#keyword").val());
    if(text =="" || text =="请输入关键字"){
        text ="";
    }else{
        text ='%'+text+'%';
    }
                                                                                                                
    conditData(text);
});*/
loadContents(pageIndex,columnId,siteId,rows);
function loadContents(pageIndex,columnId,siteId,rows){
    $("#wp_news_w6").find("ul.news_list").children().remove();
    //排序参数
    var orderData = [
    ];
    var returnInfos = JSON.stringify(returnData());
    var orders = JSON.stringify(orderData);
    var conditions = JSON.stringify(conditData(text));
                                                                                                                    
    $.ajax({
        url: articleUrl,
        type: 'POST',
        contentType: "application/x-www-form-urlencoded; charset=utf-8",
        async: false,
        dataType: 'json',
        data: {
            siteId:siteId,
            columnId:columnId,
            pageIndex:pageIndex,
            rows: rows,
            orders:orders,
            returnInfos: returnInfos,
            conditions:conditions
            //visitPermitFilter:1
        },
        success: function(result){
            var total = result.total;
            if (result != null){
                //console.log(result);
                for (j=0;j < result.data.length; j++){
                    var art = result.data[j];
                                                                                                                                
                    html =  '<li class="news n1 clearfix">'+
                            '   <span class="news_title"><a href="'+art.url+'" target="_blank" title="'+art.title+'">'+art.title+'</a></span>'+
                            '   <span class="news_meta">'+art.publishTime+'</span>'+
                            '</li>';
                    $("#wp_news_w6").find("ul.news_list").append(html);
                }
            }
            var pageCount = result.pageCount;
            var pageHtml = "";
            pageHtml += ('<div class="new_pages" >');
            pageHtml += (' <ul class="wp_paging clearfix"> ');
            pageHtml += ('   <li class="pages_count"> ');
            pageHtml += ('     <span class="per_page">每页<em class="per_count">' + rows + '</em>条记录</span> ');
            pageHtml += ('     <span class="all_count">总共<em class="all_count">' + total + '</em>条记录</span> ');
            pageHtml += ('   </li> ');
            pageHtml += ('   <li class="new_page_nav">');
            pageHtml += ('     <a class="first" href="javascript:void(0);"><span>首页</span></a> ');
            pageHtml += ('     <a class="prev" href="javascript:void(0);"  ><span>上一页</span></a> ');
            pageHtml += ('     <a class="next" href="javascript:void(0);" ><span>下一页</span></a> ');
            pageHtml += ('     <a class="last" href="javascript:void(0);"><span>尾页</span></a> ');
            pageHtml += ('   </li> ');
            pageHtml += ('   <li class="new_page_jump"> ');
            pageHtml += ('     <span class="pages">页码:<em class="curr_page" curr_page="' + pageIndex + '">' + pageIndex + '</em>/<em class="all_pages" pageCount="' + pageCount + '">' + pageCount + '</em></span> ');
            pageHtml += ('     <span><input class="pageNum" type="text" /><input type="hidden" class="currPageURL" value=""></span></span> ');
            pageHtml += ('     <span><a class="new_pagingJump" href="javascript:void(0);" target="_self">跳转</a></span> ');
            pageHtml += ('   </li> ');
            pageHtml += (' </ul> ');
            pageHtml += ('</div> ');
            $("#wp_paging_w6").html(pageHtml);
            //$("#wp_news_w501").html(html);
        }
    });
}
initpageClick("wp_paging_w6",columnId,siteId,rows); //跳转页面
initFirstPageClick("wp_paging_w6",columnId,siteId,rows); //首页
initLastPageClick("wp_paging_w6",columnId,siteId,rows); //尾页
initPrevPageClick("wp_paging_w6",columnId,siteId,rows); //上一页
initNextPageClick("wp_paging_w6",columnId,siteId,rows); //下一页
/*查询条件*/
function conditData(val){
    var conditdata = [
          //{field: "title", value: val, judge: "like"},
          {field: "scope", value: 1, judge: "="}
    ];
    return conditdata;
}
//请求返回参数
function returnData(){
    var returnInfosdata = [
        {field: "title",pattern: [{name: "lp",value: "30"}], name: "title"},
        {field: "publishTime",pattern: [{name: "d",value: "yyyy-MM-dd"}],name: "publishTime"}
    ];
    return returnInfosdata;
}
//初始化跳转页面
function initpageClick(idTag,columnId,siteId,rows) {
    $(document).on('click', "#" + idTag + " .new_pagingJump", function(event) {
        var pageNum = $(".new_page_jump .pageNum").val();
        if (pageNum === "") {
            alert("请输入页码!");
            return;
        }
        var pageCount = $(".new_pages .all_pages").attr("pageCount");
        if (isNaN(pageNum) || pageNum <= 0 || pageNum > pageCount) {
            alert("请输入正确页码!");
            return;
        }
        loadContents(pageNum,columnId,siteId,rows);
    });
}
//初始化首页
function initFirstPageClick(idTag,columnId,siteId,rows) {
    $(document).on('click', "#" + idTag + " .new_page_nav .first", function(event) {
        loadContents(1,columnId,siteId,rows);
    });
}
//初始化尾页
function initLastPageClick(idTag,columnId,siteId,rows) {
    $(document).on('click', "#" + idTag + " .new_page_nav .last", function(event) {
        var allPages = $(".new_pages .all_pages").attr("pageCount");
        loadContents(allPages,columnId,siteId,rows);
    });
}
//初始化上一页
function initPrevPageClick(idTag,columnId,siteId,rows) {
    $(document).on('click', "#" + idTag + " .new_page_nav .prev", function(event) {
        var pageCount = $(".new_page_jump .curr_page").attr("curr_page");
        var prev = --pageCount;
        if (prev <= 0) {
            return;
        }
        loadContents(prev,columnId,siteId,rows);
    });
}
//初始化下一页
function initNextPageClick(idTag,columnId,siteId,rows) {
    $(document).on('click', "#" + idTag + " .new_page_nav .next", function(event) {
        var pageCount = $(".new_page_jump .curr_page").attr("curr_page");
        var next = ++pageCount;
        var allPages = $(".new_pages .all_pages").attr("pageCount");
        if (allPages < next) {
            return;
        }
        loadContents(next,columnId,siteId,rows);
    });
}
});


3.2 仿造平台搜索页

文件:wp_search.zip


1、检索服务文档

2、js资料文档