亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個數據庫表中含有一系列的關鍵字,現在傳入一字符串,如何高效的判斷數據表中哪些關鍵字在這個字符串中。

一個數據庫表中含有一系列的關鍵字,現在傳入一字符串,如何高效的判斷數據表中哪些關鍵字在這個字符串中。

小怪獸愛吃肉 2023-04-16 18:14:39
只是一個簡單的數據表 包括兩個字段 關鍵字 和 關鍵字的描述數據表只有幾千條數據 字符串是一句話,包含中文和英文字符,為的是提高查詢效率
查看完整描述

2 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

跟python無關,你需要的是AC自動機算法(多模式串匹配)。

而如果是要實現搜索,那么實際上應當使用倒排索引,才能達到最優的效果。


查看完整回答
反對 回復 2023-04-20
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

省事點用 sqlite fts4 全文索引好了,這樣可以一條字段存入多條關鍵字,
查詢時給句子拆分下加入 OR 語法,select 用下 snippet 函數得到匹配的關鍵字。

把數據存到 sqlite fts4 全文索引表(sqlite 有在 python 標準庫里不需要其他依賴,可以用內存數據庫),fts4 默認會按標點和空格分詞,所以處理中文時預先插入空格就沒問題(插入 \r 之類也行)。

如果要求判斷子字符串而不是按單詞判斷,存入數據時先用空格把字母和字符逐個隔開,查詢時也逐個隔開并加上適當引號和 * 號,

而如果是想分詞卻擔心有黃詞漏網的話,存入數據和查詢句子都用二元分詞就可以了。


查看完整回答
反對 回復 2023-04-20
  • 2 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號