全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
开放搜索

push推送带搜索Demo

更新时间:2017-06-12 09:22:43

创建Config配置头文件

Config 页面中的内容将作为后续的查询推送文档的头文件,其中包含AK,host,应用名,下拉名称 及 options 选项,等重要参数信息

  1. <?php
  2. //引入头文件
  3. require_once("../OpenSearch/Autoloader/Autoloader.php");
  4. use OpenSearch\Client\OpenSearchClient;
  5. //替换对应的access key id
  6. $accessKeyId = '<Your accessKeyId>';
  7. //替换对应的access secret
  8. $secret = '<Your secret>';
  9. //替换为对应区域api访问地址,可参考应用控制台,基本信息中api地址
  10. $endPoint = '<region endPoint>';
  11. //替换为应用名
  12. $appName = '<app name>';
  13. //替换为下拉提示名称
  14. $suggestName = '<suggest name>';
  15. //开启调试模式
  16. $options = array('debug' => true);
  17. //创建OpenSearchClient客户端对象
  18. $client = new OpenSearchClient($accessKeyId, $secret, $endPoint, $options);

上传文档代码

以下我们向 opensearch应用中上传了10条文档。

  1. <?php
  2. header("Content-Type:text/html;charset=utf-8");
  3. //引用头部文件
  4. require_once("Config.inc.php");
  5. use OpenSearch\Client\DocumentClient;
  6. use OpenSearch\Client\SearchClient;
  7. use OpenSearch\Util\SearchParamsBuilder;
  8. //设置数据需推送到对应应用表中
  9. $tableName = '替换应用表名';
  10. //创建文档操作client
  11. $documentClient = new DocumentClient($client);
  12. //添加数据
  13. $docs_to_upload = array();
  14. for ($i = 0; $i < 10; $i++){
  15. $item = array();
  16. $item['cmd'] = 'ADD';
  17. $item["fields"] = array(
  18. "id" => $i + 1,
  19. "name" => "搜索肯德基".$i
  20. );
  21. $docs_to_upload[] = $item;
  22. }
  23. // 编码
  24. $json = json_encode($docs_to_upload);
  25. //提交推送文档
  26. $ret = $documentClient->push($json, $appName, $tableName);
  27. //延迟10秒,高级版主表增量90%,10秒内生效,99%在10min内,附表暂不保证。
  28. sleep(10);
  29. // 实例化一个搜索类
  30. $searchClient = new SearchClient($client);
  31. // 实例化一个搜索参数类
  32. $params = new SearchParamsBuilder();
  33. //设置config子句的start值
  34. $params->setStart(0);
  35. //设置config子句的hit值
  36. $params->setHits(20);
  37. // 指定一个应用用于搜索
  38. $params->setAppName('替换为应用名');
  39. // 指定搜索关键词
  40. $params->setQuery("name:'搜索'");
  41. // 指定返回的搜索结果的格式为json
  42. $params->setFormat("fulljson");
  43. //添加排序字段
  44. $params->addSort('RANK', SearchParamsBuilder::SORT_DECREASE);
  45. // 执行搜索,获取搜索结果
  46. $ret = $searchClient->execute($params->build());
  47. // 将json类型字符串解码
  48. print_r(json_decode($ret->result,true));
  49. //打印调试信息
  50. echo $ret->traceInfo->tracer;
本文导读目录