Adobe 65007312 Programming Guide - Page 79

Combining search criteria, value

Page 79 highlights

CHAPTER 4: Working with Metadata Searching for photos by metadata values 79 thisMonth thisYear "is in this month" "is in this year" value The value to match against must be of the type indicated for the criteria. Additional parameters value2 and value_unit are used with specific types and operations, as mentioned above. Combining search criteria You can create a more complex search descriptor by using a combine entry to specify how to combine the results of several criterion tables: import "LrTasks".startAsyncTask( function() local catalog = import "LrApplication".activeCatalog() local photos = catalog:findPhotos { searchDesc = { combine = "intersect", { criteria = "rating", operation = ">", value = 3, }, { criteria = "captureDate", operation = ">", value = "2007-01-01", } }, } for _, photo in ipairs( photos ) do -- do something with path end end ) There are three ways to combine criteria: combine = "union" combine = "intersect" combine = "exclude" Any of the criteria match. All of the criteria match. None of the criteria match. A combine entry is followed by an array of elements to be combined. This array can contain nested combine entries, so the search can become quite complex. For example: { combine = "union", { combine = "intersect", { criteria = "rating",

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204

C
HAPTER
4: Working with Metadata
Searching for photos by metadata values
79
value
The value to match against must be of the type indicated for the criteria. Additional parameters
value2
and
value_unit
are used with specific types and operations, as mentioned above.
Combining search criteria
You can create a more complex search descriptor by using a
combine
entry to specify how to combine the
results of several criterion tables:
import "LrTasks".startAsyncTask( function()
local catalog = import "LrApplication".activeCatalog()
local photos = catalog:findPhotos {
searchDesc = {
combine = "intersect",
{
criteria = "rating",
operation = ">",
value = 3,
},
{
criteria = "captureDate",
operation = ">",
value = "2007-01-01",
}
},
}
for _, photo in ipairs( photos ) do
-- do something with path
end
end )
There are three ways to combine criteria:
A
combine
entry is followed by an array of elements to be combined. This array can contain nested
combine
entries, so the search can become quite complex. For example:
{
combine = "union",
{
combine = "intersect",
{
criteria = "rating",
thisMonth
"is in this month"
thisYear
"is in this year"
combine = "union"
Any of the criteria match.
combine = "intersect"
All of the criteria match.
combine = "exclude"
None of the criteria match.