修复搜索接口
This commit is contained in:
parent
19b0ca3db5
commit
eb69cabf47
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue