对用户的印象笔记账户完成一次基本的搜索需要以下三步:
NoteFilter
的实例NoteStore.findNotesMetadata
NoteStore.getNote
以获取所有匹配此搜索的笔记。根据搜索类型的不同,NoteFilter
提供了几个可被赋值的成员变量:
words
— 发出纯文本的搜索查询(例如,“notebook:foo tag:bar”)notebooksGuid
— 使用 Notebook.guid
来将搜索结果限定到特定的一个笔记本内。tagGuids
— 将搜索结果限定在具有这些标签的笔记中 (用 Tag.guid
字符串来表示)。inactive
— 将此变量设为 true
将只返回未在使用中的笔记(也就是在废纸篓中的笔记)。如果设置为 false
——也是默认值——那么只会返回正在使用中的笔记。NoteStore.findNotesMetadata
接受五个参数,依次说明如下:
NoteFilter
实例findNotes
来获取大量结果时会用到它。NotesMetadataResultSpec
的实例, 它可以让用户设置要返回哪些匹配的笔记的信息。
如果我们想要获取用户账户内最新的100条笔记的标题,那代码会看起来像这样:
正如你看到的,我们创建了一个 NoteFilter
实例并将变量 ascending
设成 False
(这样所有的结果都是以降序返回的),将偏移量设为 0, 笔记上限数设为 100。如果查询结果少于 100 条笔记,那么将返回全部匹配的笔记。将 NotesMetadataResultSpec
实例的 includeTitle
设为 True
(其他的值仍然是默认值 False
),这样我们就能保证不会返回不必要的数据了。
findNotesMetadata
会返回一个我们还未接触过的类型: NotesMetadataList
。如果你想了解该类型的全部内容,你可以仔细阅读一下对应的文档。本例中,我们想要看一下会返回哪些笔记——可以通过 NotesMetadataList.notes
来进行查询:
本例运行时,程序会输出每条匹配笔记的 GUID 和标题。
当通过 NoteStore.findNotesMetadata
确定好你想要下载下来的笔记之后, 你可以调用NoteStore.getNote
,它会为匹配的笔记返回一个 Types.Note
的实例,用于下载笔记正文、附加文件(资源)和图像识别信息。