mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-23 09:24:31 +02:00
table.search_sql(include_rank=True) option (#480)
* search_sql add include_rank option * add test * add FTS4 test * Apply Black Thanks, @chapmanjacobd
This commit is contained in:
parent
087753cd42
commit
ecf1d40112
2 changed files with 48 additions and 0 deletions
|
|
@ -2376,6 +2376,7 @@ class Table(Queryable):
|
|||
limit: Optional[int] = None,
|
||||
offset: Optional[int] = None,
|
||||
where: Optional[str] = None,
|
||||
include_rank: bool = False,
|
||||
) -> str:
|
||||
""" "
|
||||
Return SQL string that can be used to execute searches against this table.
|
||||
|
|
@ -2385,6 +2386,7 @@ class Table(Queryable):
|
|||
:param limit: SQL limit
|
||||
:param offset: SQL offset
|
||||
:param where: Extra SQL fragment for the WHERE clause
|
||||
:param include_rank: Select the search rank column in the final query
|
||||
"""
|
||||
# Pick names for table and rank column that don't clash
|
||||
original = "original_" if self.name == "original" else "original"
|
||||
|
|
@ -2427,6 +2429,8 @@ class Table(Queryable):
|
|||
rank_implementation = "rank_bm25(matchinfo([{}], 'pcnalx'))".format(
|
||||
fts_table
|
||||
)
|
||||
if include_rank:
|
||||
columns_with_prefix_sql += ",\n " + rank_implementation + " rank"
|
||||
limit_offset = ""
|
||||
if limit is not None:
|
||||
limit_offset += " limit {}".format(limit)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue