push推送带搜索Demo
创建Config配置头文件
Config 页面中的内容将作为后续的查询推送文档的头文件,其中包含AK,host,应用名,下拉名称及 options 选项,等重要参数信息
<?php
//引入头文件
require_once("../OpenSearch/Autoloader/Autoloader.php");
use OpenSearch\Client\OpenSearchClient;
//替换对应的access key id
$accessKeyId = '<Your accessKeyId>';
//替换对应的access secret
$secret = '<Your secret>';
//替换为对应区域api访问地址,可参考应用控制台,基本信息中api地址
$endPoint = '<region endPoint>';
//替换为应用名
$appName = '<app name>';
//替换为下拉提示名称
$suggestName = '<suggest name>';
//开启调试模式
$options = array('debug' => true);
//创建OpenSearchClient客户端对象
$client = new OpenSearchClient($accessKeyId, $secret, $endPoint, $options);
上传文档代码
以下我们向 opensearch应用中上传了10条文档。
<?php
header("Content-Type:text/html;charset=utf-8");
//引用头部文件
require_once("Config.inc.php");
use OpenSearch\Client\DocumentClient;
use OpenSearch\Client\SearchClient;
use OpenSearch\Util\SearchParamsBuilder;
//设置数据需推送到对应应用表中
$tableName = '替换应用表名';
//创建文档操作client
$documentClient = new DocumentClient($client);
//添加数据
$docs_to_upload = array();
for ($i = 0; $i < 10; $i++){
$item = array();
$item['cmd'] = 'ADD';
$item["fields"] = array(
"id" => $i + 1,
"name" => "搜索肯德基".$i
);
$docs_to_upload[] = $item;
}
// 编码
$json = json_encode($docs_to_upload);
//提交推送文档
$ret = $documentClient->push($json, $appName, $tableName);
//延迟10秒,高级版主表增量90%,10秒内生效,99%在10min内,附表暂不保证。
sleep(10);
// 实例化一个搜索类
$searchClient = new SearchClient($client);
// 实例化一个搜索参数类
$params = new SearchParamsBuilder();
//设置config子句的start值
$params->setStart(0);
//设置config子句的hit值
$params->setHits(20);
// 指定一个应用用于搜索
$params->setAppName('替换为应用名');
// 指定搜索关键词
$params->setQuery("name:'搜索'");
// 指定返回的搜索结果的格式为json
$params->setFormat("fulljson");
//添加排序字段
$params->addSort('RANK', SearchParamsBuilder::SORT_DECREASE);
// 执行搜索,获取搜索结果
$ret = $searchClient->execute($params->build());
// 将json类型字符串解码
print_r(json_decode($ret->result,true));
//打印调试信息
echo $ret->traceInfo->tracer;