mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-09-16 22:58:00 +00:00
Documentation: document the query grammar paperless actually supports (#14074)
* docs(search): document the query grammar paperless actually supports * docs(search): cover ?/bracket wildcards and the no-stemmer fallback * Shorten things up, use tables and less wordy stuff. Fixes some test doc strings that referred to the documentation * Silly sonarr
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
"""Pins the search syntax that ``docs/usage.md`` promises users.
|
||||
|
||||
Every query here appears verbatim, or as a direct paraphrase, in the
|
||||
"Document searches" section of ``docs/usage.md``. Each case indexes real
|
||||
Every query here is syntax the "Document searches" section of
|
||||
``docs/usage.md`` documents, either spelled as the docs spell it or as a
|
||||
concrete instance of a form the docs describe. Each case indexes real
|
||||
documents and asserts on matched document IDs rather than on the parsed
|
||||
query, because a query that parses cleanly is not necessarily a query that
|
||||
means what the documentation says it means: ``added:now`` parses without a
|
||||
@@ -228,9 +229,9 @@ class TestArchiveMetadataFields:
|
||||
f"checksum:{DOC_CHECKSUM}",
|
||||
"checksum:9f86d081*",
|
||||
# A checksum term is stored verbatim, but a checksum *pattern* is
|
||||
# lowercased before it is matched, which the docs now say outright
|
||||
# next to the "only a complete, lowercase checksum matches" rule
|
||||
# that the uppercase term in the negative list below pins.
|
||||
# lowercased before it is matched, so an uppercase prefix pattern
|
||||
# still matches even though the uppercase term in the negative
|
||||
# list below does not.
|
||||
"checksum:9F86D081*",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -134,18 +134,19 @@ class TestPrefixStemming:
|
||||
GIVEN:
|
||||
- The same indexed document, storing "university" as "univers"
|
||||
WHEN:
|
||||
- "universities*" and "universit*" are each queried
|
||||
- "universities*", "universit*" and "univers*" are each queried
|
||||
THEN:
|
||||
- "universities*" matches, since the stem of "universities" is
|
||||
that same "univers"; "universit*" matches nothing, since
|
||||
"universit" is a prefix of neither its own stem nor the
|
||||
stored term. The alternatives widen recall without turning
|
||||
a wildcard into a prefix search over the original text, and
|
||||
usage.md names this exact pair so a reader told that
|
||||
`universit*` fails is also told which spelling works
|
||||
a wildcard into a prefix search over the original text.
|
||||
usage.md tells a reader whose `universit*` finds nothing to
|
||||
shorten it to `univers*`, which matches
|
||||
"""
|
||||
assert _matched_ids(backend, "universities*") == {indexed_doc.id}
|
||||
assert _matched_ids(backend, "universit*") == set()
|
||||
assert _matched_ids(backend, "univers*") == {indexed_doc.id}
|
||||
|
||||
def test_pattern_past_the_stem_boundary_is_documented_not_fixed(
|
||||
self,
|
||||
|
||||
Reference in New Issue
Block a user