Redis 實現搜尋關鍵詞自動補全

2021-09-14 06:31:01 字數 1044 閱讀 9506

一、字典型自動補全

redis 的有序集合有乙個特性:score 相同時,是按照字典順序排序的。

127.0.0.1:6379> zrange autoc 0 -1

1) "b"

2) "ba"

3) "bar"

4) "bar$"

5) "f"

6) "fo"

7) "foo"

8) "foo$"

9) "foob"

10) "fooba"

11) "foobar"

12) "foobar$"

127.0.0.1:6379> zrank autoc ba

(integer) 1

127.0.0.1:6379> zrange autoc 1 -1

1) "ba"

2) "bar"

3) "bar$"

4) "f"

5) "fo"

6) "foo"

7) "foo$"

8) "foob"

9) "fooba"

10) "foobar"

11) "foobar$"

可在程式中通過判斷或獲取指定長度的集合,獲取 bar$ 結尾之前的所有詞。

假設現在需要獲取以 「n」 開頭的10個熱門提示詞,則我們首先將所有的詞存放在有序集合中,score都為0

127.0.0.1:6379> zrange prefix_n 0 -1

1) "near"

2) "nequ"

3) "netflix"

4) "news"

5) "newyork"

當prefix_n(以n為字首的集合)這個有序集合一直小於乙個閾值,如300時,則直接對某乙個搜尋詞進行 score + 1

當集合大於乙個閾值時,則刪除score最低的member,然後對搜尋詞 score + 1

參考:

AC自動機 搜尋關鍵詞

給定 n 個長度不超過 50 的由小寫英文本母組成的單詞,以及一篇長為 m 的文章。請問,有多少個單詞在文章 現了。輸入格式 第一行包含整數 t,表示共有 t 組測試資料。對於每組資料,第一行乙個整數 n,接下去 n 行表示 n 個單詞,最後一行輸入乙個字串,表示文章。輸出格式 對於每組資料,輸出乙...

nlp 關鍵詞搜尋

可以嘗試修改 除錯 公升級的部分是 文字預處理步驟 你可以使用很多不同的方法來使得文字資料變得更加清潔 更好的回歸模型 根據之前的課講的ensemble方法,把分類器提公升到極致 版本1.0 日期 10.10.2019 import numpy as np import pandas as pd f...

關鍵詞搜尋結果頁看關鍵詞競爭大小

大家好,我是虛子雨。最近有好幾個朋友問到我怎麼看關鍵詞的競爭大小,我才發現其實很多的人對於關鍵詞的競爭大小很關注的。這不僅僅是我們站長需要弄懂的乙個小的知識點,也是很多企業主應該弄懂的。對於站長來說我們做優化需要弄懂關鍵詞競爭大小,在給這些關鍵詞作分析選擇的時候會用到,在優化的過程中也會用到,在分析...