Search within a library
This page collects requirements on the search within a library. Typically, a user uses the search bar to trigger a search in the current library. They can also open up a popup to search across all libraries.
Requirements on search regarding a fetcher are not covered here. Requirements on the syntax itself are not covered here, oo.
Requirements sources
Indirectly, the requirements are listed at https://docs.jabref.org/finding-sorting-and-cleaning-entries/search. This page tries to collect issues from users as requirements to enable better tracing in the code.
Search syntax must support quick search by first author name
req~jabgui.search.syntax.author-first-name~1
Issue: #10490
Enable to quickly search by first author name.
Example BibTeX entry:
@article{art_1,
author = {John Demo}
}
@article{art_2,
author = {John Demoing}
}
When searching for “author” “Demo” should match art_1 only.
It is possible by regular expressions, but the user asked for “quickly”.
Currently, no implementation is linked
Search syntax must support quick search by citation key
req~jabgui.search.syntax.citation-key~1
Issue: #10490
Enable to quickly search for a citation key.
Currently, no implementation is linked
Full-text search must search linked files without Postgres backend
req~jabgui.search.fulltext.lucene-without-postgres~1
When linked-file full-text indexing is enabled, users must be able to search the contents of linked files without enabling the experimental Postgres search backend.
Needs: impl, utest
Full-text search results must reflect the active library in the entry editor
req~jabgui.search.fulltext.entry-editor-results~1
After a linked-file search completes, the selected entry’s matching file text and page links appear in the entry editor for the active library. Switching libraries must not show results from the previous library. PR #17367
Needs: impl, utest
Full-text search must apply case-sensitive operators to linked files
req~jabgui.search.fulltext.case-sensitive~1
Issue: #13048
The case-sensitive operators of the search syntax (=!, ==!, =~!) must also apply to the contents and annotations of linked files. Searching for any ==! SEE must not match a file that only contains See.
Needs: impl, utest
Full-text search must preserve metadata results when Lucene query fails
req~jabgui.search.fulltext.lenient-query-parsing~1
Issue: #9482
The search bar validates regular expressions with java.util.regex, the full-text index parses them with Lucene’s own dialect, where characters such as " and < are syntax instead of literals. A query that only Lucene rejects must leave the metadata results untouched and skip the linked files, instead of aborting the whole search.
Needs: impl, utest