SRW/SRU协议的异构库检索详解(二) _SRW

SRW是一个基于XML 的用于Internet 的信息检索和获取协议,它利用现已得到广泛应用的技术如 SOAP、XPATH 来完成信息请求和响应。

SRW中定义了三个基本操作:SearchRetrieve、Scan和Explain;

1、SearchRetrieve

客户端发送searchRetrieveRequest参数到服务器,服务器完成检索后发送响应参数searchRetrieveResponse回客户端,服务器以XML格式记录响应内容。

   其中searchRetrieveRequest包含以下参数:(*为必备项)

                version:客户端能理解的SRW的最高版本*

                  query:符合CQL语法的检索表达式*

  maximumRecords:客户端希望返回的最大记录数
          startRecord:返回的第一条记录在匹配记录集中的位置
       recordPacking:返回记录的格式 有 xml 和string 两种选择 如果 string  则表示要求服务
端对匹配记录进行转义处理
       recordSchema:返回记录的XML Schema
         resultSetTTL:客户端要求结果集在服务端保留的时间
              sortKeys:返回记录的排序字段
            stylesheet:客户端要求服务端插入到响应信息头部的XML 样式表地址
          recordXPath:该参数允许返回记录中的满足指定XPath的部分内容
extracRequestData:与检索请求相关的附加信息

 样例:

<searchRetrieveRequest> <version>1.1</version> <query>dc.title = "cad"</query> <maximumRecords>10</maximumRecords> <startRecord>1</startRecord> <recordSchema>dc</recordSchema> </searchRetrieveRequest>

2、searchRetrieveResponse

                version:本响应遵循的SRW的版本

  numberOfRecords:检索请求匹配到的记录总数
           resultSetId:如果服务端支持resultSet 将在本项中返回resultSet的ID
  resultSetIdleTime:如果服务端支持resultSet 将在本项中返回resultSet在服务端保持的时间
                records:记录列表 每个记录都应该指定相关的XML Schema  并包括实际的记录内容
nextRecordPosition:返回的所有记录之后的下一条记录在匹配记录集中的位置
           diagnostics:出错信息
extraResponseData:与本响应相关的附加信息
echoedSearchRetrieveRequest:与本响应相关的请求信息

样例:

<searchRetrieveResponse> <version>1.1</version> <numberOfRecords>10</numberOfRecords> <records> <record> <recordSchema>info:srw/schema/1/dc-v1.1</ recordSchema> <recordData> <dc:record> <dc:title>title</dc:title> <dc:creator> authors </dc:creator> </dc:record> </recordData> </record> </records> </searchRetrieveResponse>

 

目前采用基于该协议对万方数据库进行检索,在返回结果中已能获取总条目数(numberOfRecord)、版本(version)、下一页开始出(nextRecordPosition)但在对返回类型是stringOrXmlFragment的recordData进行解析时一直无法获取详细结果,期待有此开发经历的朋友前来留言,帮助,谢谢!

 

 

你可能感兴趣的:(SRW/SRU协议的异构库检索详解(二) _SRW)