修复搜索接口

This commit is contained in:
Miyamizu-MitsuhaSang 2025-09-04 15:46:33 +08:00
parent 19b0ca3db5
commit eb69cabf47
2 changed files with 15 additions and 6 deletions

View File

@ -50,10 +50,11 @@ async def search(request: Request, body: SearchRequest, user=Depends(get_current
contents=contents,
)
else:
query = all_in_kana(query)
query_kana = all_in_kana(query)
print(query)
word_content = await DefinitionJp.filter(
word__text=query
word__text=query,
word__hiragana=query_kana,
).prefetch_related("word", "pos")
if not word_content:
raise HTTPException(status_code=404, detail="Word not found")
@ -80,7 +81,7 @@ async def search(request: Request, body: SearchRequest, user=Depends(get_current
# TODO 相关度排序(转换为模糊匹配)
# TODO 输入搜索框时反馈内容
@dict_search.post("search/list")
@dict_search.post("/search/list")
async def search_list(query_word: SearchRequest, user=Depends(get_current_user)):
"""
检索时的提示接口
@ -88,5 +89,6 @@ async def search_list(query_word: SearchRequest, user=Depends(get_current_user))
:param user:
:return: 待选列表
"""
print(query_word.query, query_word.language, query_word.sort, query_word.order)
word_contents = await suggest_autocomplete(query=query_word)
return word_contents
return {"list": word_contents}

View File

@ -25,7 +25,11 @@ async def suggest_autocomplete(query: SearchRequest, limit: int = 10) -> List[st
.get_or_none(text=query.query)
.values("text", "freq")
)
exact_word = [(exact.get("text"), exact.get("freq"))]
if exact:
exact_word = [(exact.get("text"), exact.get("freq"))]
else:
exact_word = []
qs_prefix = (
WordlistFr
.filter(Q(search_text__startswith=query_word) | Q(text__startswith=query.query))
@ -56,7 +60,10 @@ async def suggest_autocomplete(query: SearchRequest, limit: int = 10) -> List[st
.get_or_none(text=query.query)
.only("text", "freq")
)
exact_word = [(exact.text, exact.freq)]
if exact:
exact_word = [(exact.text, exact.freq)]
else:
exact_word = []
qs_prefix = (
WordlistJp