Using Search
Port87's search feature is extremely powerful, here you can learn how to use it well
Port87’s search bar is a full‑text, query‑language powered engine. It can search subjects, bodies, attachments, labels, dates, and more, without leaving the UI. In fact, every mail list you see inside Port87, like when you click the links in the sidebar, uses queries in the search bar to work.
When you type simple text into the search bar, Port87 will use a full text search on the subject, from address, sender address, body text, body html, and attachments.
A simple search works well, but when you need to really dig deep and find exactly what you're looking for, understanding Port87's powerful search feature can help.
Query Parser
Port87’s search bar is built on our open‑source Nymph.js Query Parser using the below properties. See its docs for full grammar and feature reference.
Full-Text Search
Port87's Full-Text Search engine is an open source implementation using our SciActive Tokenizer. This tokenizer performs word stemming using the Snowball algorithm, so the word "delivered" in an email will match queries like "deliver", "delivery", and "delivers", but not "liver". Stop words and punctuation are removed from both the search index and queries, so words like "is" and "the" will not match.
Our Full-Text Search engine supports search-engine-like syntax features:
- You can use single quotes to search for sequential text, like
'baseball tickets'. This syntax uses stemming, so it will match "baseball tickets", "baseball ticket", and "baseballs ticketed", for example. - You can use double quotes to search for exact words and exact sequences, like
"delivered"or"delivered today". This syntax does not use stemming, so it will only match "delivered" and "delivered today", respectively. Note that stop words and puntuation are still removed, so"delivered today"will still match text like "It is delivered. And then today we can't." (Since after stop words and punctuation are removed, this text becomes "delivered today".) - You can use the word "or" to search for two terms or two sequences independently, like
music or videoor'vinyl records' or 'cassette tapes'. - You can use the minus sign ("-") to negate a term or sequence, like
receipt -promoordelivered -"amazon.com".
QRef Clauses
A "qref" (query reference) clause uses a subquery to find mail that references something that matches the subquery. Practically, this means mail that has a "body", "headers", or "labels" object that matches a given subquery. Because mail is stored in Port87 in three parts (Mail, Body, and Headers) and also references the labels it belongs to, qref clauses let you search for mail across all of these parts.
A qref clause identifies both the property that contains the reference, and the type of object (its class name) the reference refers to:
propertyname<{ClassName inner query}>
This is why you'll see both "body" and "Body" in a qref query for the body of an email, or "labels" and "Label" in a qref query for the labels of an email.
Examples
Full Text Search
Matching the subject.
subject:delivered
or
subject(delivered)
Matching the from address.
from:[email protected]
or
from([email protected])
Matching the body text. This uses a "qref" clause to find all mail that has a body that matches the text "your receipt".
body<{Body html:'your receipt'}>
Matching attachment names. This also uses a "qref" clause, because attachment names are stored on the body entity.
body<{Body attachments:family.jpg}>
More
Automatically Appended Parameters
When you search using the search bar, Port87 will automatically append some additional query parameters to the search to help with organization.
- If the query does not include a limit
limit:10is appended. This number can be adjusted in your settings.
- If the query does not include a reverse option
reverse:trueis appended to show new emails first.
- If the query does not include
<sent>or-<sent>-<sent>is appended.
- If the query does not include
[trash]-[trash]is appended, then- If the query does not include
[delivered],-[delivered], or<draft>[delivered]is appended.
- If the query does not include
<spam>or-<spam>-<spam>is appended.
- If the query does not include
<bare>or-<bare>-<bare>is appended.
- If the query does not include
<autoreply>or-<autoreply>-<autoreply>is appended.
- If the query does not include
<draft>or-<draft>-<draft>is appended.
Example: subject:hello becomes subject:hello limit:10 reverse:true -<sent> -[trash] [delivered] -<spam> -<bare> -<autoreply> -<draft>
If you'd like to eliminate these added parameters, you can use an "or" selector to select for both possibilities.
Example: subject:hello (| [delivered] -[delivered]) will find messages regardless of whether the sender has passed the screening check.
Port87 includes controls at the top of the search results to adjust these search settings. You'll notice that by using them, your search query is adjusted on the fly.