You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 37af475
Browse filesBrowse the repository at this point in the historyBrowse files
improvement(search): require half the query's terms in Jira partial matches (#8987)
* improvement(search): keep a Jira partial match only when it holds half the query's terms
The any-term retry ORs pairs of terms, so on a large Jira site it returns tickets sharing only a couple of common words, which then ranked alongside every other source's best results. Jira partial matches must now contain at least half the query's distinct terms in their title or description, a word and its regular plural counting as one as Jira's stemmed search matches them (minimum-should-match over the relaxed tier). Confluence's relevance-ranked site search is unchanged. When no partial match qualifies, the all-terms page is returned as it was before the retry existed.
* improvement(search): one provider setting for the any-term retry
Replace the parallel requiresEveryTerm and partialMatchesNeedHalfTheTerms flags and their two lookups with a single anyTermRetry setting that carries the fallback's options.
* fix(search): compare query and ticket words by the same singular key in the Jira floor
Rebuilding plural forms from a word's key missed singular words whose plural adds -es (release, database, license): their key drops the final e, so neither the word nor its plural was found and the floor dropped valid partial matches. Both sides now go through the same key, as an analyzer does for query and document, with a term containing punctuation matched as written.
* refactor(search): apply the Jira half-the-terms floor in the Jira adapter
The floor tightens Jira's own any-term query, so it now sits beside that query in the Jira branch of searchAtlassian. The shared any-term fallback and the provider registry are back to their previous shape: no option, flag, or exported type. The term test is built once per search from the query, splits words with the shared WORD_CHARACTER definition, and is covered directly in text-match tests, with the adapter tests covering the wiring and Confluence staying untouched.
* chore(search): terse floor comment, guard the query-side plural fold
* fix(search): measure Jira partial-match coverage on the summary and description only
The issue mapper appends a Status line, so a query containing 'status' gained a term from the label alone. The floor now reads the raw summary and description fields before mapping.
0 commit comments