Skip to content

Commit 510baf4

Browse files
committed
docs: issue2550698 - Document the logical expression search a bit
Updated and tested docs in user_guide.txt. To close out ticket still need unit tests.
1 parent 03d63a8 commit 510baf4

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

CHANGES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ Fixed:
2828
Rouillard)
2929
- issue2551074 - In "responsive" template: click on hide comment leads
3030
to a red error msg. (Report by Ludwig Reiter; fix John Rouillard)
31+
- issue2550698 - added documentation on filtering using RPN property
32+
expressions. (John Rouillard)
3133

3234
Features:
3335

doc/user_guide.txt

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,42 @@ the supported format and features.
445445

446446
.. _`documentation for configuring the native-fts`: admin_guide.html#configuring-native-fts-full-text-search
447447

448+
Advanced Searching with Property Expressions
449+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
450+
451+
You can create more advanced searches in your tracker by using Reverse
452+
Polish Notation (`RPN`_) to make property expressions. By default, when
453+
filtering by multiple items, the expression type is 'or'. For
454+
instance, if you filter the property assignedto by adding the query
455+
string element "assignedto=2,3,40", it matches users "2 or 3 or
456+
40". In RPN, this would be written as "2, 3, or, 4, or". Roundup uses
457+
negative numbers to represent operators. For example, using "-1" for a
458+
single value (e.g. the assignedto Link property, but not the keyword
459+
multivalued/MultiLink property) matches an issue where the property is
460+
'not set'.
461+
462+
The operators and their corresponding numbers are:
463+
464+
* 'not' is represented by -2
465+
* 'and' is represented by -3
466+
* 'or' is represented by -4
467+
468+
So, "assignedto=2,3,40" is the same as
469+
"assignedto=2,3,-4,40,-4". While this example is the same as
470+
"2,3,40", the expression "keyword=1,2,-3,-2" filters issues that don't
471+
have both keywords 1 and 2.
472+
473+
Another example is: ``creator=3,-2,1,-2,-3``. This is the same as the
474+
expression: ``(not user3) and (not user1)``. Using the rules of logic,
475+
this is the same as: ``not (user3 or user1)`` which is expressed in
476+
RPN as ``creator=3,1,-4,-2``. Compare this to ``creator=3,1,-2`` which
477+
returns issues created by user3 or any user other than user1.
478+
479+
Typing these expressions manually can be tiresome, so there's an
480+
expression editor on the search page. You can access it by clicking on
481+
the ``(expr)`` link, which makes creating these expressions a bit
482+
easier.
483+
448484
Using the Classhelper
449485
---------------------
450486

@@ -771,3 +807,4 @@ If the author of the message is also in the nosy list for the item that
771807
the message is attached to, then the config var ``MESSAGES_TO_AUTHOR``
772808
is queried to determine if they get a nosy list copy of the message too.
773809

810+
.. _`RPN`: https://en.wikipedia.org/wiki/Reverse_Polish_notation

0 commit comments

Comments
 (0)