diff --git a/app/api/search.py b/app/api/search.py index 304a2ff..26c308b 100644 --- a/app/api/search.py +++ b/app/api/search.py @@ -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} diff --git a/app/utils/autocomplete.py b/app/utils/autocomplete.py index da6bdb4..d0257c4 100644 --- a/app/utils/autocomplete.py +++ b/app/utils/autocomplete.py @@ -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