我正在使用Evernote的PHP SDK,我需要检索已标记的笔记列表。 当我按关键字或笔记本giud过滤时,它可以工作,但是一旦我设置了tagGuids,我就会得到空列表。
以下是示例代码:
$noteFilter=new EDAM\NoteStore\NoteFilter();
#For the sake of this example, I'm just getting all existing tags
#and adding them to filter so it should:
$tags=$noteStore->listTags($token);
$noteFilter->tagGuids=Array();
foreach($tags as $tag){
$noteFilter->tagGuids[]=$tag->guid;
}
$notes=$noteStore->findNotes($token,$noteFilter,0,20);
我有标签说明。但这就是我得到的结果,一个空列表:
EDAM\NoteStore\NoteList Object
(
[startIndex] => 0
[totalNotes] => 0
[notes] => Array
(
)
[stoppedWords] =>
[searchedWords] =>
[updateCount] => 139
)
答案 0 :(得分:1)
实际上,您无法进行此类搜索。使用tagGuids属性 - 比如说 - 2个标签将导致搜索包含这两个标签同时的注释。 它是一个' AND'搜索,而不是' OR'搜索范围。
一种选择是进行多次搜索,每次搜索都有一个标签并合并结果...... 不是最佳,但我担心它是你唯一的解决方案。
您可以在此处找到一些帮助:https://dev.evernote.com/doc/articles/search_grammar.php
顺便说一句,findNotes方法已被弃用。您应该使用findNotesMetadata方法:
$resultSpec = new \EDAM\NoteStore\NotesMetadataResultSpec();
$resultSpec->includeTitle;
$resultSpec->includeTagGuids;
$notes=$noteStore->findNotesMetadata($authToken,$noteFilter,0,20, $resultSpec);