소스 검색

Implement FTS for authors.

tags/v1.0^2
Ben Kurtovic 10 년 전
부모
커밋
08ce46faeb
1개의 변경된 파일8개의 추가작업 그리고 3개의 파일을 삭제
  1. +8
    -3
      bitshift/database/__init__.py

+ 8
- 3
bitshift/database/__init__.py 파일 보기

@@ -65,8 +65,10 @@ class Database(object):
return "(code_lang = ?)", [node.lang]
elif isinstance(node, Author):
tables |= {"authors"}
# (FTS: author_name) vs. node.name (_Literal)
pass
if isinstance(node.name, Regex):
return "(author_name REGEXP ?)", [node.name.regex]
cond = "(MATCH(author_name) AGAINST (? IN BOOLEAN MODE))"
return cond, [node.name.string]
elif isinstance(node, Date):
column = {node.CREATE: "codelet_date_created",
node.MODIFY: "codelet_date_modified"}[node.type]
@@ -103,7 +105,10 @@ class Database(object):
number of total results).
"""
conditional, joins, args = self._explode_query_tree(query)
base = "SELECT codelet_id FROM codelets %s WHERE %s LIMIT 10"
base = """SELECT codelet_id
FROM codelets %s
WHERE %s
ORDER BY codelet_rank LIMIT 10"""
qstring = base % (joins, conditional)
if page > 1:
qstring += " OFFSET %d" % ((page - 1) * 10)


불러오는 중...
취소
저장