查找相关笔记
给予笔记更多信息
最近在 2012 年度的印象笔记百宝箱大会上,我们宣布了一个给第三方开发者和合作方的新 API,这就是 NoteStore.findRelated
。顾名思义,这个函数允许客户端请求与提供数据(可以是特定笔记或一段文本)相关的笔记,笔记本和标签。
在 Github 上面,你可以找到一个使用 findRelated
的 Python 应用例子。本页中的代码是直接从这个例子应用中拿来的,所以你可以继续关注和更改这个应用。
假设你已经通过了云 API 的认证,并且已经有了一个用来进行相关搜索的笔记,下面就是进行相关搜索的基本实现:
除了认证 token(不管是测试用的开发者 token 还是通过 OAuth 获取的认证 token)以外,我们需要创建和填充两个作为参数传给 findRelated
的对象:Related Query
和 RelatedResultSpec
。
RelatedQuery
这个类用来存放我们希望得到相关项的东西(一条笔记或一段文字)。在上面的代码片段中,我们故意采用了 parameter
这个模糊的变量名,它可以是一个 Note 对象,也可以是一段文字。当我们定义 RelatedQuery
时,我们使用相关查询基于的笔记的 GUID(这里假设 parameter
是一条笔记)并把这个 GUID 赋值给 RelatedQuery
中的 noteGuid
成员变量,或者,如果 parameter
不是笔记而是其他的东西,我们使用它来填充 RelatedQuery
对象中的 plainText
变量。
值得注意的是,我们必须选择 plainText
或者 noteGuid
; 我们不能同时使用它们,也不能同时不使用它们。
(更多关于 RelatedQuery
的信息请参考 API 参考)。
RelatedResultSpec
RelatedResultSpec
使我们可以控制调用 findRelated
时印象笔记云 API 返回的结果类型和数目。我们可以填充一个或多个如下的成员变量:
maxNotes
maxNotebooks
maxTags
它的功能和字面上的一样;如果你赋值给 maxNotes
一个数目,我们将得到这个数目(或者更少)的笔记作为结果。笔记本和标签也是类似的使用方法。唯一需要注意的地方是,如果你不给其中一个或多个变量赋值,那么就不会返回变量所对应类型的结果。
在我们的例子中,我们只定义了 maxNotes
。这意味着我们的 RelatedResult
(findRelated
返回的类型)不会包含任何笔记本和标签。
(更多关于 RelatedResultSpec
的信息请参考 API 参考)。
总结
在上面的实现中 - 假定至少有一条笔记满足我们的条件 - 你将得到一个包含最多 3 条相关笔记的 RelatedResult
对象。这些是 Note
对象,所以你可以查询它们的名字,GUID,元数据等。
findRelated
的函数定义在我们的 API 参考文档中可以找到。这个方法在我们所有的 SDK 中都提供。这些 SDK 可以在 Github 上下载。
如果需要更多的关于我们 API 或开发者支持的信息,请参考开发者站点。