开发者社区> 问答> 正文

开放搜索的v3 PhpSDK如何使用?

开放搜索的v3 PhpSDK如何使用?

展开
收起
保持可爱mmm 2020-03-26 22:01:22 573 0
1 条回答
写回答
取消 提交回答
  • 快速开始 使用openSearch提供搜索功能十分简单,下面带大家迅速上手 准备工作 登录控制台创建应用 手动在控制台根据实际业务需要创建对应表结构及其它相关配置,例如:索引,属性,数据源,过滤条件等。 下载此处我们提供的测试 标准版应用结构模板,在创建应用结构时,选择“通过模板创建应用结构”,然后下一步,再选择左上角的“导入模板”,上传此处下载的应用结构模板,一直下一步直到完成。【此应用结构测试模板,可适用于标准版Php SDK文档中的搜索及推送数据Demo代码】 获取AccessKey和Secret 登录http://opensearch.console.aliyun.com ,点击 ACCESSKEY管理 查看是否已经创建了阿里云 access key id和access key secret。如果没有创建,则点击创建一套id和secret 下载php SDK并添加到项目中 在左侧栏“相关下载”页面中下载v3版 php SDK包,并根据需编写具体功能需要,添加如下头文件内容到项目中,具体参考Demo中各功能实现的代码样例 主要功能头文件集合<参考> 主要功能包含,查询应用信息,查询应用文档,推送文档,下拉提示等,依赖的头文件,引用对应功能的头文件后就可以编写对应功能及对象方法调用。

    我们先实例化一个SDK客户端client,在编写对应功能时会使用到它。 '; //替换为对应的access secret $secret = ' '; //替换为对应区域api访问地址,可参考应用控制台,基本信息中api地址 $endPoint = ' '; //替换为应用名 $appName = ' '; //替换为下拉提示名称 $suggestName = ' '; //开启调试模式 $options = array('debug' => true); //创建OpenSearchClient客户端对象 $client = new OpenSearchClient($accessKeyId, $secret, $endPoint, $options); 上传文档格式 在上面代码的基础上我们继续使用DocumentClient类对象向刚创建的应用中上传一些文档,应用名称继续使用上面config页面中的的$appName。OpenSearch应用中的文档是一个json类型的字符串,结构如下: 此处的应用文档格式,在应用控制台中的,上传文件按钮,参考样例数据,可以下载对应的完整文档数据格式,可直接通过上传此处,下载的文件到应用中进行搜索 [ { "fields":{}, "cmd":"" } ... ] cmd字段可选的值为:ADD、DELETE、UPDATE(标准版应用,不支持UPDATE,新增和更新都通过ADD实现,也不支持部分字段更新),分别表示添加、删除以及更新一条文档; fields字段内包含文档本身的字段属性,比如在一个小说应用的结构中可能包含以下字段:title:小说的名字,body:小说主体内容,url:访问小说的地址等。 完整示例代码 可以下载V3 版PhpSDK,并解压到下面代码文件的同级目录中,然后直接复制下面代码,将其中的access key和secret替换成自己的,以及替换其它关键信息,就可以体验一下OpenSearch了。 $i + 1, "name" => "搜索".$i ); $docs_to_upload[] = $item; } // 编码 $json = json_encode($docs_to_upload); //提交推送文档 $ret = $documentClient->push($json, $appName, $tableName); // 实例化一个搜索类 $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; 调试 通过上面的操作我们已经可以使用基本的搜索功能了,但是优化搜索、提高搜索结果相关性是一个漫长的的过程,需要我们不断试错和迭代来一点点改进。在这个过程中如果遇到问题或者发现结果与预期不一致时可以通过下面的接口获得请求的详细信息,可以通过这些信息排查问题。特别是当遇您到问题,在旺旺群、钉钉群中寻求帮助的时候,根据调试信息我们可以迅速帮您定位到问题所在。 echo $ret->traceInfo->tracer;
    2020-03-27 10:03:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《开放搜索统一召回引擎实践》 立即下载
《开放搜索查询分析服务架构分享》 立即下载
《开放搜索在智能化行业搜索和业务增长领域的应用实践》 立即下载