6.1.通用API方法

优质
小牛编辑
135浏览
2023-12-01

6.1.1.GetLastError (错误信息)

原型:function GetLastError()

以可读形式返回最近的错误描述信息。如果前一次API调用没有错误,返回空字符串。

任何其他函数(如Query())失败后(函数失败一般返回false),都应该调用这个函数,它将返回错误的描述。

此函数本身并重置对错误描述,因此如有必要,可以多次调用。

6.1.2.GetLastWarning (告警信息)

原型:function GetLastWarning ()

以可读格式返回最近的警告描述信息。如果前一次API调用没有警告,返回空字符串。

您应该调用这个函数来确认您的请求(如Query())是否虽然完成了但产生了警告。例如,即使几个远程代理超时了,对分布式索引的搜索查询也可能成功完成。这时会产生一个警告信息。

此函数本身会重置警告信息,因此如有必要,可以多次调用。

6.1.3.SetServer (设置搜索服务)

原型:function SetServer ( $host, $port )

设置searchd的主机名和TCP端口。此后的所有请求都使用新的主机和端口设置。默认的主机和端口分别是“localhost”和9312。

6.1.4.SetRetries (设置失败重试)

原型:function SetRetries ( $count, $delay=0 )

设置分布式搜索重试的次数和延迟时间。

对于暂时的失败,searchd对每个代理重试至多$count次。$delay是两次重试之间延迟的时间,以毫秒为单位。默认情况下,重试是禁止的。注意,这个调用不会使API本身对暂时失败进行重试,它只是让searchd这样做。目前暂时失败包括connect()调用的各种失败和远程代理超过最大连接数(过于繁忙)的情况。

6.1.5.SetConnectTimeout (设置超时时间)

原型:function SetConnectTimeout ( $timeout )

设置连接超时时间,在与服务器连接时,如果超过这个时间没有连上就放弃。

有时候服务器在响应上会有所延迟,这有可能由于网络的延时,也有可能是因为服务器未处理完的查询太多,堆积所致。不管是什么情况,有了这个选项,就给客户端应用程序提供了一定的控制权,让它可以决定当searchd不可用的时候如何处理,而且可以避免脚本由于超过运行限制而运行失败(尤其是在PHP里)

当连接失败的而时候,会将合适的错误码返回给应用程序,以便在应用程序级别进行错误处理和通知用户。

6.1.6.SetArrayResult (设置结果返回格式)

原型:function SetArrayResult ( $arrayresult )

PHP专用。控制搜索结果集的返回格式(匹配项按数组返回还是按hash返回)

$arrayresult参数应为布尔型。如果$arrayresultfalse(默认),匹配项以PHP hash格式返回,文档ID为键,其他信息(权重、属性)为值。如果$arrayresulttrue,匹配项以普通数组返回,包括匹配项的全部信息(含文档ID)

这个调用是对MVA属性引入分组支持时同时引入的。对MVA分组的结果可能包含重复的文档ID。因此需要将他们按普通数组返回,因为hash对每个文档ID仅能保存一个记录。

6.1.7.IsConnectError (检查链接错误)

原型:function IsConnectError ()

检查上一个错误是API层面的网络错误还是searchd返回的远程错误。如果是上一次连接searchd的尝试在API层面失败了,返回真,否则返回假(错误发生在远程,或者根本没有尝试连接)。 这是在版本0.9.9-rc1引入的。