本文描述连接器的提供与外界交互的servlet接口,连接器与外部是通过xml格式数据交互的

1)  获取所有连接类型

提交地址:http://localhost:8080/connector-manager/getConnectorList
提交方式:GET
返回数据:

<CmResponse>
<Info>Google Search Appliance Connector Manager ; Sun Microsystems Inc. Java HotSpot(TM) Client VM 1.6.0_45; Windows 2003 5.2 (x86)</Info>
<StatusId>0</StatusId>
<ConnectorTypes>
<ConnectorType>DBConnector</ConnectorType>
</ConnectorTypes>
</CmResponse>

2) 获取创建连接实例表单html

提交地址:http://localhost:8080/connector-manager/getConfigForm?ConnectorType=DBConnector&Lang=zh
提交方式:GET

参数 ConnectorType 值为连接类型;Lang为返回语言

返回数据:

<?xml version="1.0" encoding="utf-8"?>

<CmResponse>
<StatusId>0</StatusId>
<ConfigureResponse>
<FormSnippet><![CDATA[<tr style='display: none'><td>
<script type='text/javascript'>
function getVisibility(disabled) {
if (disabled) { return 'hidden'; } else { return 'visible'; }
}
function setDisabledProperties(xslt, urlField, docIdField, lobField){
document.getElementById('xslt').disabled=xslt;
document.getElementById('documentURLField').disabled=urlField;
document.getElementById('documentIdField').disabled=docIdField;
document.getElementById('baseURL').disabled=docIdField;
document.getElementById('lobField').disabled=lobField;
document.getElementById('fetchURLField').disabled=lobField;
document.getElementById('documentURLFieldStar').style.visibility=getVisibility(urlField);
document.getElementById('documentIdFieldStar').style.visibility=getVisibility(docIdField);
document.getElementById('baseURLStar').style.visibility=getVisibility(docIdField);
document.getElementById('lobFieldStar').style.visibility=getVisibility(lobField);
}
</script>
</td></tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style="float: left;">JDBC Driver Classname</div><div style="text-align: right; color: red; font-weight: bold; margin-right: 0.3em;">*</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><input type="text" size="50" name="driverClassName" id="driverClassName"/></td>
</tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style="float: left;">JDBC Connection URL</div><div style="text-align: right; color: red; font-weight: bold; margin-right: 0.3em;">*</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><input type="text" size="50" name="connectionUrl" id="connectionUrl"/></td>
</tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style="float: left;">用户名</div><div style="text-align: right; color: red; font-weight: bold; margin-right: 0.3em;">*</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><input type="text" size="50" name="login" id="login"/></td>
</tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style="float: left;">密码</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><input type="password" size="50" name="password" id="password"/></td>
</tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style="float: left;">SQL Query</div><div style="text-align: right; color: red; font-weight: bold; margin-right: 0.3em;">*</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><textarea rows="10" cols="50" name="sqlQuery" id="sqlQuery"></textarea></td>
</tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style="float: left;">Primary Keys (separated by comma)</div><div style="text-align: right; color: red; font-weight: bold; margin-right: 0.3em;">*</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><input type="text" size="50" name="primaryKeysString" id="primaryKeysString"/></td>
</tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style="float: left;">Last Modified Date Field</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><input type="text" size="50" name="lastModifiedDate" id="lastModifiedDate"/></td>
</tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style="float: left;">Document Content</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"></td>
</tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style='text-align:right; width:40px; float:left; margin-right:5px'><input type="radio" name="extMetadataType" value="noExt" id="extMetadataType_noExt" checked="checked" onclick="javascript:setDisabledProperties(false, true, true, true)"/></div><div style="float: left;"><label for="extMetadataType_noExt">Stylesheet for serving results</label></div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><textarea rows="10" cols="50" name="xslt" id="xslt"></textarea></td>
</tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style='text-align:right; width:40px; float:left; margin-right:5px'><input type="radio" name="extMetadataType" value="lob" id="extMetadataType_lob" onclick="javascript:setDisabledProperties(true, true, true, false)"/></div><div style="float: left;"><label for="extMetadataType_lob">BLOB or CLOB Field</label></div><div id="lobFieldStar" style="text-align: right; color: red; font-weight: bold; margin-right: 0.3em; float: right; visibility: hidden;">*</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><input type="text" size="50" name="lobField" id="lobField" disabled="disabled"/></td>
</tr>
<tr valign="top"><td align="center"><div style="margin-left:45px; float: left;">Display URL Field</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><input type="text" size="50" name="fetchURLField" id="fetchURLField" disabled="disabled"/></td>
</tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style='text-align:right; width:40px; float:left; margin-right:5px'><input type="radio" name="extMetadataType" value="url" id="extMetadataType_url" onclick="javascript:setDisabledProperties(true, false, true, true)"/></div><div style="float: left;"><label for="extMetadataType_url">Document URL Field</label></div><div id="documentURLFieldStar" style="text-align: right; color: red; font-weight: bold; margin-right: 0.3em; float: right; visibility: hidden;">*</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><input type="text" size="50" name="documentURLField" id="documentURLField" disabled="disabled"/></td>
</tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style='text-align:right; width:40px; float:left; margin-right:5px'><input type="radio" name="extMetadataType" value="docId" id="extMetadataType_docId" onclick="javascript:setDisabledProperties(true, true, false, true)"/></div><div style="float: left;"><label for="extMetadataType_docId">Document ID Field</label></div><div id="documentIdFieldStar" style="text-align: right; color: red; font-weight: bold; margin-right: 0.3em; float: right; visibility: hidden;">*</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><input type="text" size="50" name="documentIdField" id="documentIdField" disabled="disabled"/></td>
</tr>
<tr valign="top"><td align="center"><div style="margin-left:45px; float: left;">Base URL</div><div id="baseURLStar" style="text-align: right; color: red; font-weight: bold; margin-right: 0.3em; float: right; visibility: hidden;">*</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><input type="text" size="50" name="baseURL" id="baseURL" disabled="disabled"/></td>
</tr>
<tr valign="top"><td colspan="1" rowspan="1" style="white-space:nowrap"><div style="float: left;">Authorization SQL Query</div></td>
<td colspan="1" rowspan="1" style="white-space:nowrap"><textarea rows="10" cols="50" name="authZQuery" id="authZQuery"></textarea></td>
</tr>
]]></FormSnippet>
<ConnectorConfigXml><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--
Bean for encapsulation of all the configuration parameter needed for a
working Database Connector instance.
-->
<bean id="db-connector-config" class="com.google.enterprise.connector.db.DBContext"
parent="database-connector-defaults" singleton="false"> <!--
Parameter for fetching number of rows in a single call to the repository.
-->
<!--
<property name="numberOfRows" value="500"></property>
--> <!--
Replace the minValue with minimum key value when configuring the connector
with with parameterized query. Default value -1 is for minimum value
comparison with the result set key values for the first time to compute
the next highest order key.
-->
<!--
<property name="minValue" value="-1"></property>
--> <!--
Flag to determine whether the SQL query is parameterized.
-->
<!--
<property name="parameterizedQueryFlag" value="true"></property>
--> <!--
Flag to specify whether NULL values sort high or low in ORDER BY queries.
This can usually be determined by examining the DatabaseMetadata.
However, if that information is unavailable or incorrect, you can
explicitly specify the ordering here.
-->
<!--
<property name="nullsAreSortedLow" value="true"></property>
--> <!--
A java.text.Collator implementation that mimics the sorting done by
the database ORDER BY clause specified in the Traversal SQL query
for text values (CHAR, VARCHAR, etc).
By default, the connector uses the Collator for the current default
locale, with TERTIARY strength (case and accent sensitive), and
CANONICAL_DECOMPOSITION of accented characters.
See CollatorConfiguration examples in the Database connector Wiki:
http://code.google.com/p/google-enterprise-connector-database/wiki/ConfiguringCollator
-->
<!--
This example uses the java.text.Collator static factory method to
get a Collator for the current default locale, then set the strength
to be case-sensitive and accent-sensitive.
-->
<!--
<property name="collator">
<bean class="java.text.Collator" factory-method="getInstance">
<property name="strength">
<util:constant static-field="java.text.Collator.TERTIARY"/>
</property>
<property name="decomposition">
<util:constant static-field="java.text.Collator.CANONICAL_DECOMPOSITION"/>
</property>
</bean>
</property>
-->
</bean>
</beans>
]]></ConnectorConfigXml>
</ConfigureResponse>
</CmResponse>

3)  创建连接器实例

提交地址:http://localhost:8080/connector-manager/setConnectorConfig
提交方式:POST
提交数据:

<ConnectorConfig>
<Lang>zh</Lang>
<ConnectorName>default_collectionName_dbconnector_1401727454046</ConnectorName>
<ConnectorType>DBConnector</ConnectorType>
<Update>false</Update>
<Param name="driverClassName" value="com.mysql.jdbc.Driver"/>
<Param name="connectionUrl" value="jdbc:mysql://localhost:3306/hedgehog?useUnicode=true&amp;characterEncoding=utf-8"/>
<Param name="login" value="root"/>
<Param name="password" value="admin"/>
<Param name="sqlQuery" value="select * from biz_document"/>
<Param name="primaryKeysString" value="docID"/>
<Param name="lastModifiedDate" value="doc_crawl_date"/>
<Param name="extMetadataType" value="noExt"/>
<Param name="xslt" value=""/>
<Param name="authZQuery" value=""/>
<Param name="ctl00$PageBody$Button1" value="确定"/>
</ConnectorConfig>

返回数据:

<CmResponse>
<StatusId>0</StatusId>
</CmResponse>

4) 设置调度配置信息

提交地址:http://localhost:8080/connector-manager/setSchedule
提交方式:POST
提交数据:

<ConnectorSchedules>
<ConnectorName>default_collectionName_dbconnector_1401727454046</ConnectorName>
<disabled>true</disabled>
<load>1000</load>
<RetryDelayMillis>5000</RetryDelayMillis>
<TimeIntervals>0-0</TimeIntervals>
</ConnectorSchedules>

返回数据:

<CmResponse>
<StatusId>0</StatusId>
</CmResponse>

5) 获取调度配置信息

http://127.0.0.1:8080/connector-manager/getSchedule?ConnectorName=default_collectionName_dbconnector_1401727454046

提交方式:GET

参数 ConnectorName 值为连接实例名

返回数据:

<CmResponse>
<StatusId>0</StatusId>
<ConnectorStatus>
<ConnectorName>default_collectionName_dbconnector_1401727454046</ConnectorName>
<ConnectorType>DBConnector</ConnectorType>
<Status>0</Status>
<ConnectorSchedules>#default_collectionName_dbconnector_1401727454046:1000:5000:0-0</ConnectorSchedules>
</ConnectorStatus>
</CmResponse>

6) 获取连接实例状态

提交地址:http://127.0.0.1:8080/connector-manager/getConnectorStatus?ConnectorName=default_collectionName_dbconnector_1401727454046
提交方式:GET

参数 ConnectorName 值为连接实例名

返回数据:

<CmResponse>
<StatusId>0</StatusId>
<ConnectorStatus>
<ConnectorName>default_collectionName_dbconnector_1401727454046</ConnectorName>
<ConnectorType>DBConnector</ConnectorType>
<Status>0</Status>
<ConnectorSchedules version="3">#default_collectionName_dbconnector_1401727454046:1000:5000:0-0</ConnectorSchedules>
</ConnectorStatus>
</CmResponse>

7) 获取连接实例配置信息

提交地址:http://127.0.0.1:8080/connector-manager/getConnectorConfig?ConnectorName=default_collectionName_dbconnector_1401727454046

提交方式:GET

参数 ConnectorName 值为连接实例名

返回数据:(编码)

<CmResponse>
<StatusId>0</StatusId>
<ConfigureResponse>
<Param name="googlePropertiesVersion" value="3"/>
<Param name="sqlQuery" value="select * from biz_document"/>
<Param name="authZQuery" value=""/>
<Param name="driverClassName" value="com.mysql.jdbc.Driver"/>
<Param name="extMetadataType" value="noExt"/>
<Param name="password" value="admin"/>
<Param name="primaryKeysString" value="docID"/>
<Param name="xslt" value=""/>
<Param name="connectionUrl" value="jdbc:mysql://localhost:3306/hedgehog?useUnicode=true&characterEncoding=utf-8"/>
<Param name="lastModifiedDate" value="doc_crawl_date"/>
<Param name="login" value="root"/>
<Param name="ctl00$PageBody$Button1" value="确定"/>
</ConfigureResponse>
</CmResponse>

8)设置调度配置信息(启动连接器实例)

提交地址:http://localhost:8080/connector-manager/setSchedule
提交方式:POST
提交数据:

<ConnectorSchedules>
<ConnectorName>default_collectionName_dbconnector_1401727454046</ConnectorName>
<load>1000</load>
<RetryDelayMillis>5000</RetryDelayMillis>
<TimeIntervals>0-0</TimeIntervals>
</ConnectorSchedules>

返回数据:

<CmResponse>
<StatusId>0</StatusId>
</CmResponse>

9) 停止连接器实例

提交地址:http://127.0.0.1:8080/connector-manager/stopConnector?ConnectorName=default_collectionName_dbconnector_1401339529599
提交方式:GET
返回数据:

<CmResponse>
<StatusId>0</StatusId>
<ConnectorStatus>
<ConnectorName>default_collectionName_dbconnector_1401339529599</ConnectorName>
<ConnectorType>DBConnector</ConnectorType>
<Status>0</Status>
</ConnectorStatus>
</CmResponse>

10) 移除连接器实例

提交地址:http://127.0.0.1:8080/connector-manager/removeConnector?ConnectorName=default_collectionName_dbconnector_1401339529599
提交方式:GET
返回数据:

<CmResponse>
<StatusId>0</StatusId>
</CmResponse>

---------------------------------------------------------------------------

本系列企业搜索引擎开发之连接器connector系本人原创

转载请注明出处 博客园 刺猬的温驯

本人邮箱: chenying998179@163#com (#改为.)

本文链接 http://www.cnblogs.com/chenying99/p/3726862.html

企业搜索引擎开发之连接器connector(十七)的更多相关文章

  1. 企业搜索引擎开发之连接器connector(二十七)

    ChangeQueue类实现ChangeSource接口,声明了拉取下一条Change对象的方法 * A source of {@link Change} objects. * * @since 2. ...

  2. 企业搜索引擎开发之连接器connector(三十)

    连接器里面采用的什么样的数据结构,我们先从Document迭代器开始入手,具体的Document迭代器类都实现了DocumentList接口,该接口定义了两个方法 public interface D ...

  3. 企业搜索引擎开发之连接器connector(二十九)

    在哪里调用监控器管理对象snapshotRepositoryMonitorManager的start方法及stop方法,然后又在哪里调用CheckpointAndChangeQueue对象的resum ...

  4. 企业搜索引擎开发之连接器connector(二十八)

    通常一个SnapshotRepository仓库对象对应一个DocumentSnapshotRepositoryMonitor监视器对象,同时也对应一个快照存储器对象,它们的关联是通过监视器管理对象D ...

  5. 企业搜索引擎开发之连接器connector(二十六)

    连接器通过监视器对象DocumentSnapshotRepositoryMonitor从上文提到的仓库对象SnapshotRepository(数据库仓库为DBSnapshotRepository)中 ...

  6. 企业搜索引擎开发之连接器connector(二十五)

    下面开始具体分析连接器是怎么与连接器实例交互的,这里主要是分析连接器怎么从连接器实例获取数据的(前面文章有涉及基于http协议与连接器的xml格式的交互,连接器对连接器实例的设置都是通过配置文件操作的 ...

  7. 企业搜索引擎开发之连接器connector(二十四)

    本人在上文中提到,连接器实现了两种事件依赖的机制 ,其一是我们手动操作连接器实例时:其二是由连接器的自动更新机制 上文中分析了连接器的自动更新机制,即定时器执行定时任务 那么,如果我们手动操作连接器实 ...

  8. 企业搜索引擎开发之连接器connector(二十三)

    我们在前面的文章已经看到,ConnectorCoordinatorImpl类也实现了ChangeHandler接口,本文接下来分析实现该接口的作用 class ConnectorCoordinator ...

  9. 企业搜索引擎开发之连接器connector(二十二)

    下面来分析线程执行类,线程池ThreadPool类 对该类的理解需要对java的线程池比较熟悉 该类引用了一个内部类 /** * The lazily constructed LazyThreadPo ...

随机推荐

  1. 简化Redis数据访问代码RedisTemplate

    ---恢复内容开始--- Redis数据结构简介: Redis可以存储键与5中数据结构类型之间的映射,这5中数据结构类型分别是;String(字符串),List(列表),Set(集合),Hash(散列 ...

  2. Bootstrap-CL:页面标题

    ylbtech-Bootstrap-CL:页面标题 1.返回顶部 1. Bootstrap 页面标题(Page Header) 页面标题(Page Header)是个不错的功能,它会在网页标题四周添加 ...

  3. android基于adb的性能测试

    应用CPU.内存.点亮.流量等数据,是应用测试的重要性能指标.本次以UC浏览器为例. 当前UC测试中,每个正式版本都会专门做一轮性能测试,测试数据包括: 1小时内存数据 1小时CPU数据 24小时电量 ...

  4. 设置putty标题栏显示固定信息

    设置好后,登录服务器后,发现标题栏又显示root@sit:/opt/ihome,没有显示成我设置的title内容.原因是: 在Terminal->Features中一定要勾选Disable re ...

  5. while循环-for循环

    while true: 无限循环语句 break跳出循环,当count=1000的时候结束循环 count是结束当前循环'''count = 0while True: print("coun ...

  6. Rancher的安装配置

    1.基于Docker镜像安装Rancher Rancher 服务器是一个 Docker image,所以其软件本身不需要安装,只需要执行 Docker 命令下载并且成功运行 Docker 服务器镜像即 ...

  7. Dynamics CRM 2011 权限管理

    CRM系统基于角色的权限主要通过部门.角色.用户.团队来进行控制.每一个实体记录的所有者(Owner)必然是某一个用户或团队.一个用户或团队必然归属于一个且只归属于一个部门,但团队的成员即用户可以来自 ...

  8. pm无力的话

    1. 先这样做吧, 等不行再改 2. 用户的需求不明确, 他们对于自己的业务也不明白, 现在是我们在帮助他们缕清自己的业务, 这个迭代的过程中,有很多问题,我们程序员既不能参与到业务, 也不能猜测业务 ...

  9. sql中合并列方法

    方法一:创建合并列函数 -------创建一个方法---------- CREATE FUNCTION dbo.Role_Name(@AdminID int) ) AS BEGIN ) SET @r ...

  10. 【转】Unity Scene场景自定义坐标轴

    来自:https://blog.csdn.net/cheng624/article/details/70859054 多看看别人的代码是没有坏处的,即使学不了人家的大框架,偶尔拾起一些小东西也是可以的 ...