~sircmpwn/searchhut-devel

searchhut-docs: Search operators v1 PROPOSED

Umar Getagazov: 1
 Search operators

 1 files changed, 56 insertions(+), 1 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~sircmpwn/searchhut-devel/patches/33924/mbox | git am -3
Learn more about email & git

[PATCH searchhut-docs] Search operators Export this patch

---
 content/docs/users/operators.md | 57 ++++++++++++++++++++++++++++++++-
 1 file changed, 56 insertions(+), 1 deletion(-)

diff --git a/content/docs/users/operators.md b/content/docs/users/operators.md
index c1c46fd..61b1821 100644
--- a/content/docs/users/operators.md
+++ b/content/docs/users/operators.md
@@ -4,4 +4,59 @@ title: Search operators

# Search operators

This page is a stub.
SearchHut search query parser supports conjunction (AND) and disjunction (OR).
Search terms are implicitly joined with AN, so there's no explicit AND
operator. The following query will yield pages that have both "foo" and "bar"
present:
```
foo bar
```

You can use the OR operator (case-sensitive) to search for pages that have
either of the operands present. For example, the following query will yield
pages that have either "sr.ht" or "sourcehut" (or both) present:
```
sr.ht OR sourcehut
```

You can use parentheses to group multiple operands into a single expression.
For example, the following query will yield pages that have "unnest" and either
"postgres" or "postgresql" present:
```
unnest (postgres OR postgresql)
```

Note that SearchHut differs in this from other popular search
engines &emdash; the OR operator binds less tightly than the
implicit AND operator, so `unnest postgres OR postgresql` would be interpreted
as `(unnest AND postgres) OR postgresql`, which is not what we wanted here.
This decision has been done to simplify the language and reduce special cases.
As suggested, use parentheses to explicitly group the OR operands.

You can use various filters to further customize your query. For example, you
can use `#docs` (or `tag:docs`) to show pages from websites with the tag #docs,
and `@sourcehut.org` (or `site:sourcehut.org`) to show pages from
https://sourcehut.org. You can also filter out non-authoritative websites with
`authoritative:yes` and hide leaf (non-root) pages with `index:yes`. Here's an
example query for finding blogs about system programming, music or travel:
```
#blog index:yes (system programming OR music OR travel)
```

Here's another example query to find official websites of various FOSS
projects:
```
authoritative:yes index:yes (foss OR opensource OR free as in freedom)
```

To negate operators, use the NOT negation operator. You can use it with any
supported operator. For example, to find pages about Go the programming
language but not the game or music:
```
go language NOT game NOT music
```

To filter out some websites and tags from the results:
```
hare NOT @wikipedia.org NOT #blog
```
-- 
2.32.1 (Apple Git-133)