修复搜索接口
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,
|
contents=contents,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
query = all_in_kana(query)
|
query_kana = all_in_kana(query)
|
||||||
print(query)
|
print(query)
|
||||||
word_content = await DefinitionJp.filter(
|
word_content = await DefinitionJp.filter(
|
||||||
word__text=query
|
word__text=query,
|
||||||
|
word__hiragana=query_kana,
|
||||||
).prefetch_related("word", "pos")
|
).prefetch_related("word", "pos")
|
||||||
if not word_content:
|
if not word_content:
|
||||||
raise HTTPException(status_code=404, detail="Word not found")
|
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 相关度排序(转换为模糊匹配)
|
||||||
# TODO 输入搜索框时反馈内容
|
# TODO 输入搜索框时反馈内容
|
||||||
|
|
||||||
@dict_search.post("search/list")
|
@dict_search.post("/search/list")
|
||||||
async def search_list(query_word: SearchRequest, user=Depends(get_current_user)):
|
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:
|
:param user:
|
||||||
:return: 待选列表
|
:return: 待选列表
|
||||||
"""
|
"""
|
||||||
|
print(query_word.query, query_word.language, query_word.sort, query_word.order)
|
||||||
word_contents = await suggest_autocomplete(query=query_word)
|
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)
|
.get_or_none(text=query.query)
|
||||||
.values("text", "freq")
|
.values("text", "freq")
|
||||||
)
|
)
|
||||||
|
if exact:
|
||||||
exact_word = [(exact.get("text"), exact.get("freq"))]
|
exact_word = [(exact.get("text"), exact.get("freq"))]
|
||||||
|
else:
|
||||||
|
exact_word = []
|
||||||
|
|
||||||
qs_prefix = (
|
qs_prefix = (
|
||||||
WordlistFr
|
WordlistFr
|
||||||
.filter(Q(search_text__startswith=query_word) | Q(text__startswith=query.query))
|
.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)
|
.get_or_none(text=query.query)
|
||||||
.only("text", "freq")
|
.only("text", "freq")
|
||||||
)
|
)
|
||||||
|
if exact:
|
||||||
exact_word = [(exact.text, exact.freq)]
|
exact_word = [(exact.text, exact.freq)]
|
||||||
|
else:
|
||||||
|
exact_word = []
|
||||||
|
|
||||||
qs_prefix = (
|
qs_prefix = (
|
||||||
WordlistJp
|
WordlistJp
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue