国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

換掉ES!Redis官方搜索引擎來了,性能炸裂!

數(shù)據(jù)庫 Redis
RediSearch是一個Redis模塊,為Redis提供查詢、二次索引和全文搜索。要使用RediSearch,首先要在Redis數(shù)據(jù)上聲明索引。然后可以使用重新搜索查詢語言來查詢該數(shù)據(jù)。

1、介紹

RediSearch是一個Redis模塊,為Redis提供查詢、二次索引和全文搜索。

要使用RediSearch,首先要在Redis數(shù)據(jù)上聲明索引。

然后可以使用重新搜索查詢語言來查詢該數(shù)據(jù)。

RedSearch使用壓縮的反向索引進(jìn)行快速索引,占用內(nèi)存少。

RedSearch索引通過提供精確的短語匹配、模糊搜索和數(shù)字過濾等功能增強(qiáng)了

圖片圖片

2、實現(xiàn)特性

  • 基于文檔的多個字段全文索引
  • 高性能增量索引
  • 文檔排序(由用戶在索引時手動提供)
  • 在子查詢之間使用 AND 或 NOT 操作符的復(fù)雜布爾查詢
  • 可選的查詢子句
  • 基于前綴的搜索
  • 支持字段權(quán)重設(shè)置
  • 自動完成建議(帶有模糊前綴建議)
  • 精確的短語搜索
  • 在許多語言中基于詞干分析的查詢擴(kuò)展
  • 支持用于查詢擴(kuò)展和評分的自定義函數(shù)
  • 將搜索限制到特定的文檔字段
  • 數(shù)字過濾器和范圍
  • 使用 Redis 自己的地理命令進(jìn)行地理過濾
  • Unicode 支持(需要 UTF-8 字符集)
  • 檢索完整的文檔內(nèi)容或只是 ID 的檢索
  • 支持文檔刪除和更新與索引垃圾收集
  • 支持部分更新和條件文檔更新

對比 Elasticsearch

如下圖所示,RediSearch 構(gòu)建索引的時間為 221 秒,而 Elasticsearch 為 349 秒,快了 58%。

圖片

索引構(gòu)建測試

我們模擬了一個多租戶電子商務(wù)應(yīng)用程序,其中每個租戶代表一個產(chǎn)品類別并維護(hù)自己的索引。對于此基準(zhǔn)測試,我們構(gòu)建了 50K 個索引(或產(chǎn)品),每個索引最多存儲 500 個文檔(或項目),總共 2500 萬個文檔。RediSearch 僅用了 201 秒就構(gòu)建了索引,平均每秒運行 125K 個索引。然而,Elasticsearch 在 921 個索引后崩潰了,顯然它不是為應(yīng)對這種負(fù)載而設(shè)計的。

圖片

查詢性能測試

一旦數(shù)據(jù)集被索引,我們就使用在專用負(fù)載生成器服務(wù)器上運行的 32 個客戶端啟動兩個單詞的搜索查詢。如下圖所示,RediSearch 吞吐量達(dá)到了 12.5K 操作/秒,而 Elasticsearch 為 3.1K 操作/秒,速度提高了 4 倍。此外,RediSearch 延遲稍好一些,平均為 8 毫秒,而 Elasticsearch 為 10 毫秒。

圖片

3、安裝

3.1 源碼安裝

git clone https://github.com/RediSearch/RediSearch.git
cd RediSearch # 進(jìn)入模塊目錄
make setup
make install

3.2 docker安裝

note: RediSearch的安裝比較復(fù)雜原包無法進(jìn)行編譯操作所以我們使用docker安裝

docker run -p 6379:6379 redislabs/redisearch:latest

3.3 判斷是否安裝成功

127.0.0.1:0>module list
1) 1) "name"
   2) "ReJSON"
   3) "ver"
   4) "20007"

2) 1) "name"
   2) "search"
   3) "ver"
   4) "20209"

返回數(shù)組存在“ft”或 “search”(不同版本),表明 RediSearch 模塊已經(jīng)成功加載。

命令行操作

1、創(chuàng)建

1.1 創(chuàng)建索引

創(chuàng)建索引不妨想象成創(chuàng)建表結(jié)構(gòu),表一般基本屬性有表名、字段和字段類別等,所以我們可以考慮將索引名代表表名,字段代表字段,屬性即表示屬性。

123.232.112.84:0>ft.create "student" schema "name" text weight 5.0"sex" text "desc" text "class" tag
"OK"

student 表示索引名,name、sex、desc表示字段,text表示類型(這樣表示只是為了便于理解)“weight”為權(quán)重,默認(rèn)值為 1.0

type student
"none"

我們創(chuàng)建的索引redis是不認(rèn)識的,這證明使用的是插件。

1.2 創(chuàng)建文檔

創(chuàng)建文檔上下文的過程不妨想想成向表中插入數(shù)據(jù),這里請注意字段名可以使用雙引號但切記一定要用英文,這里之所以著重提出是因為有些編譯器中文雙引號和英文雙引號用肉眼實在難以辨認(rèn)否則會出現(xiàn)“Fields must be specified in FIELD VALUE pairs”(其實是將“ 當(dāng)作內(nèi)容處理了以至于缺少了字段

123.232.112.84:0>ft.add student 0011.0 language "chinese" fields name "張三" sex "男" desc "這是一個學(xué)生"class "一班"
"OK"

其中001為文檔ID,"1.0"為評分缺少此值會報"Could not parse document score"異常language 指明使用的語言默認(rèn)是英文編碼 如果沒有此標(biāo)記存儲是沒有問題的但不可以通過中文字符查詢

1.3 查詢

1.3.1 基本查詢

1.3.1.1 全量查詢
123.232.112.84:0>FT.SEARCH student * SORTBY sex desc RETURN 3 name sex desc
1) "2"
2) "001"
3) 1) "name"
   2) "張三"
   3) "sex"
   4) "男"
   5) "desc"
   6) "這是一個學(xué)生"

4) "002"
5) 1) "name"
   2) "張三"
   3) "sex"
   4) "男"
   5) "desc"
   6) "這是一個學(xué)生"
1.3.1.2 匹配查詢
123.232.112.84:0>ft.search student "張三" limit 010 RETURN 3 name sex desc
1) "2"
2) "001"
3) 1) "name"
   2) "張三"
   3) "sex"
   4) "男"
   5) "desc"
   6) "這是一個學(xué)生"

4) "002"
5) 1) "name"
   2) "張三"
   3) "sex"
   4) "男"
   5) "desc"
   6) "這是一個學(xué)生"

limit 與mysql相識主要用于分頁,此處是全量匹配,如果沒有設(shè)置language “chinese” 此處查詢?yōu)?,

1.3.2 模糊匹配

1.3.2.1 后置匹配
ft.search student "李*"  SORTBY sex desc RETURN 3 name sex desc
1) "1"
2) "003"
3) 1) "name"
   2) "李四"
   3) "sex"
   4) "男"
   5) "desc"
   6) "這是一個學(xué)生"
1.3.2.2 模糊搜索
123.232.112.84:0>FT.SEARCH beers "%%張店%%"
1) "1"
2) "beer:1"
3) 1) "name"
   2) "集團(tuán)本部已發(fā)布【文明就餐公約】,2號樓辦公人員午餐的就餐時間是11:45~13:00,現(xiàn)經(jīng)行政服務(wù)部進(jìn)行抽查,發(fā)現(xiàn)我們部門有員工違規(guī)就餐現(xiàn)象。請大家務(wù)必遵守,相互轉(zhuǎn)告,對于外地回到集團(tuán)辦公的同事,亦請遵守,謝謝!"
   3) "org"
   4) "山東省淄博市張店區(qū)"
   5) "school"
   6) "山東理工大學(xué)"

別高興太早全量模糊匹配是由很大限制的,他基于Levenshtein距離(LD)進(jìn)行模糊匹配。術(shù)語的模糊匹配是通過在術(shù)語周圍加“%”來實現(xiàn)的,模糊匹配的最大LD為3,確切的說這只是一種相識度查詢,并非一般意義上的模糊搜索,但是:如果仔細(xì)觀察會發(fā)現(xiàn)通過精確匹配時不僅能夠?qū)⑼暾鹶alue值查詢出來而且還查詢出其他處于文檔某個位置的key請看官方提供的一個例子:

FT.CREATE idx SCHEMA txt TEXT
FT.ADD idx docCn 1.0 LANGUAGE chinese FIELDS txt "Redis支持主從同步。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。這使得Redis可執(zhí)行單層樹復(fù)制。從盤可以有意無意的對數(shù)據(jù)進(jìn)行寫操作。由于完全實現(xiàn)了發(fā)布/訂閱機(jī)制,使得從數(shù)據(jù)庫在任何地方同步樹時,可訂閱一個頻道并接收主服務(wù)器完整的消息發(fā)布記錄。同步對讀取操作的可擴(kuò)展性和數(shù)據(jù)冗余很有幫助。[8]"
FT.SEARCH idx "數(shù)據(jù)" LANGUAGE chinese HIGHLIGHT SUMMARIZE
# Outputs:
# <b>數(shù)據(jù)</b>?... <b>數(shù)據(jù)</b>進(jìn)行寫操作。由于完全實現(xiàn)了發(fā)布... <b>數(shù)據(jù)</b>冗余很有幫助。[8...

之所以會出現(xiàn)這樣的效果是因為redisearch對文本進(jìn)行了分詞,其使用的工具是friso相比es的ik還是弱一些前者主要是對中文分詞,體積小可移植性強(qiáng)。從而我們可以結(jié)合后后置匹配算法

123.232.112.84:0>FT.SEARCH idx "數(shù)*" LANGUAGE chinese HIGHLIGHT
1) "1"
2) "docCn"
3) 1) "txt"
   2) "Redis支持主從同步。<b>數(shù)據(jù)</b>可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。這使得Redis可執(zhí)行單層樹復(fù)制。從盤可以有意無意的對<b>數(shù)據(jù)</b>進(jìn)行寫操作。由于完全實現(xiàn)了發(fā)布/訂閱機(jī)制,使得從數(shù)據(jù)庫在任何地方同步樹時,可訂閱一個頻道并接收主服務(wù)器完整的消息發(fā)布記錄。同步對讀取操作的可擴(kuò)展性和<b>數(shù)據(jù)</b>冗余很有幫助。[8]"

或者結(jié)合Levenshtein算法這樣基本上能夠滿足業(yè)務(wù)查詢需求

123.232.112.84:0>FT.SEARCH idx "%%單的樹%%" LANGUAGE chinese HIGHLIGHT
1) "1"
2) "docCn"
3) 1) "txt"
   2) "Redis支持主從同步。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。這使得Redis可執(zhí)行單層<b>樹</b>復(fù)制。從盤可以有意無意的對數(shù)據(jù)進(jìn)行寫操作。由于完全實現(xiàn)了發(fā)布/訂閱機(jī)制,使得從數(shù)據(jù)庫在任何地方同步<b>樹</b>時,可訂閱一個頻道并接收主服務(wù)器完整的消息發(fā)布記錄。同步對讀取操作的可擴(kuò)展性和數(shù)據(jù)冗余很有幫助。[8]"
1.3.2.3 字段查詢

通過字段查詢也可以實現(xiàn)模糊搜索,直接給例子,后面跟著官網(wǎng)上給的sql 和 redisearch的對照表

ft.search student *
1) "2"
2) "doudou"
3) 1) "name"
   2) "豆豆"
   3) "jtzz"
   4) "“檢索”是很多產(chǎn)品中"
   5) "phone"
   6) "18563717107"

4) "ttao"
5) 1) "name"
   2) "姚元濤"
   3) "jtzz"
   4) "一個生病的人只"
   5) "phone"
   6) "18563717107"
   
ft.search student '@phone:185* @name:豆豆'
1) "1"
2) "doudou"
3) 1) "name"
   2) "豆豆"
   3) "jtzz"
   4) "“檢索”是很多產(chǎn)品中"
   5) "phone"
   6) "18563717107"

sql

redisearch

WHERE x=‘foo’ AND y=‘bar’

@x:foo @y:bar

WHERE x=‘foo’ AND y!=‘bar’

@x:foo -@y:bar

WHERE x=‘foo’ OR y=‘bar’

(@x:foo)

WHERE x IN (‘foo’, ‘bar’,‘hello world’)

@x:(foo

WHERE y=‘foo’ AND x NOT IN (‘foo’,‘bar’)

@y:foo (-@x:foo) (-@x:bar)

WHERE x NOT IN (‘foo’,‘bar’)

-@x:(foo

WHERE num BETWEEN 10 AND 20

@num:[10 20]

WHERE num >= 10

@num:[10 +inf]

WHERE num > 10

@num:[(10 +inf]

WHERE num < 10

@num:[-inf (10]

WHERE num <= 10

@num:[-inf 10]

WHERE num < 10 OR num > 20

@num:[-inf (10]

WHERE name LIKE ‘john%’

@name:john*

1.4 刪除

1.3.1 刪除文檔

123.232.112.84:0>ft.del student 002
"1"

1.3.3 刪除索引

123.232.112.84:0>ft.drop student
"OK"

1.5 查看

1.5.1 查看所有索引

123.232.112.84:0>FT._LIST
1) "student1"
2) "ttao"
3) "idx"
4) "student"
5) "myidx"
6) "123"
7) "myIndex"
8) "testung"
9) "student2"

1.5.2 查看索引文檔中的數(shù)據(jù)

1.5.2.1 獲取單條數(shù)據(jù)
123.232.112.84:0>ft.get student 001
1) "name"
2) "張三"
3) "sex"
4) "男"
5) "desc"
6) "這是一個學(xué)生"
7) "class"
8) "一班"
1.5.2.2 獲取多條數(shù)據(jù)
123.232.112.84:0>ft.mget student 001002
1) 1) "name"
   2) "張三"
   3) "sex"
   4) "男"
   5) "desc"
   6) "這是一個學(xué)生"
   7) "class"
   8) "一班"

2) 1) "name"
   2) "張三"
   3) "sex"
   4) "男"
   5) "desc"
   6) "這是一個學(xué)生"
   7) "class"
   8) "一班"

1.6 索引別名操作

1.6.1 添加別名

123.232.112.84:0>FT.ALIASADD xs student
"OK"

給索引student起個xs的別名,一個索引可以起多個別名

1.6.2 修改別名

1.6.3 刪除別名

123.232.112.84:0>FT.ALIASDEL xs 
"OK"


責(zé)任編輯:武曉燕 來源: 蘇三說技術(shù)
相關(guān)推薦

2025-06-24 08:15:00

R edis線程數(shù)據(jù)庫

2011-06-20 18:23:06

SEO

2017-08-07 08:15:31

搜索引擎倒排

2020-03-20 10:14:49

搜索引擎倒排索引

2021-07-08 09:53:16

ChromiumGoogle搜索引擎

2022-10-08 09:13:18

搜索引擎?站

2012-09-07 13:22:21

搜索搜狗

2009-02-19 09:41:36

搜索引擎搜狐百度

2010-04-20 11:43:46

2009-09-22 16:23:52

搜索引擎

2013-11-07 16:49:09

微軟Bing必應(yīng)

2009-07-30 10:40:56

搜索引擎優(yōu)化網(wǎng)站

2010-06-13 16:27:28

搜索引擎

2023-02-08 10:45:23

2023-01-03 15:42:29

機(jī)器學(xué)習(xí)視頻搜索

2022-02-24 00:07:22

Shodan網(wǎng)絡(luò)搜索

2016-12-26 13:41:19

大數(shù)據(jù)搜索引擎工作原理

2024-05-10 08:44:25

ChatGPT模型GPT

2023-09-21 15:05:12

ChatGPT搜索引擎

2011-06-03 10:19:53

點贊
收藏

51CTO技術(shù)棧公眾號

三区在线视频| 六月丁香婷婷激情| 国产91porn| 亚洲永久激情精品| 亚洲欧洲高清在线| 91热爆在线观看| 免费成人三级| 日韩精品中文字幕在线播放| 亚欧美在线观看| 久久综合色综合88| 亚欧在线免费观看| 久久电影一区| 亚洲成年人在线| jizzjizzji欧美| 狠狠色综合网| 欧洲日本亚洲国产区| 91精品国产综合久久久久久蜜臀| 国产精品久久电影观看| 9191国产视频| 精品综合久久88少妇激情| 亚洲第一成人在线| 一区二区国产精品视频| 日韩av首页| 日本成人在线不卡视频| 国产精品三级在线观看| 日本一区二区三区免费看| 午夜伦理在线视频| 亚洲深夜激情| 久久久亚洲综合| 亚洲欧美一二三| 日韩一区自拍| 中文在线资源观看视频网站免费不卡| 亚洲午夜av久久乱码| 真不卡电影网| 国产亚洲成av人在线观看导航 | 欧美涩涩网站| 91福利国产成人精品播放| 在线综合视频网站| 国产主播在线看| 欧美日韩激情| 一本到不卡精品视频在线观看| 亚洲成人久久久久| 欧美美女黄色网| 日韩电影免费在线观看| 欧美在线观看视频一区二区三区| 亚洲精美视频| 99爱在线观看| 亚洲一区成人| 亚洲高清在线播放| 日韩欧美国产一区在线观看| 国产精品男女| 555www成人网| 99re6这里只有精品| 国产一区二区精品免费| 麻豆国产精品一区二区三区| 欧美三级午夜理伦三级老人| 麻豆精品在线看| 岛国在线视频| 91美女片黄在线观| 成人精品视频一区| h视频网站在线观看| 欧美孕妇性xx| 国产人成一区二区三区影院| www在线观看免费| 亚洲美女中文字幕| 欧美日韩在线网站| 人妖精品videosex性欧美| av网站在线免费看推荐| 国产91成人在在线播放| 久久久久久久综合日本| 午夜精品区一区二区三| 免费成人av资源网| 中文字幕av在线| www.美女亚洲精品| 影视一区二区| 成人黄网18免费观看的网站| 精品久久人人做人人爰| 亚洲女同一区| 狠狠干视频网站| 欧美在线视频日韩| 亚洲v.com| 精品国精品国产| 国产综合色区在线观看| 视频在线观看99| 毛片在线视频观看| 亚洲日韩欧美一区二区在线| 欧美变态另类刺激| 26uuu亚洲综合色欧美| 男人草女人视频| 日本亚洲天堂网| 色撸撸在线观看| 欧美三级电影一区二区三区| 国产区精品在线观看| 久久精品91| 亚洲欧美自拍另类日韩| 欧美性xxxx| 色阁综合av| 日韩区在线观看| 国产精品久久久久久久久妇女| 黄色资源在线看| 日韩久久精品成人| 亚洲三级免费| 日本三区在线观看| 日韩国产高清污视频在线观看| 97色婷婷成人综合在线观看| 国内外成人免费在线视频| 日韩一级在线观看| 免费在线观看一级毛片| 精品国内自产拍在线观看| 成人免费在线看片| 国产精品亚洲人在线观看| 免费高清成人| 日韩中文第一页| 麻豆一区二区在线| yw193.com尤物在线| 国产精品69av| 欧美—级在线免费片| 成人亚洲网站| 中文字幕一区二区中文字幕| 欧美日本不卡视频| 午夜视频在线观看精品中文| 久久免费一级片| 亚洲国产成人一区| 老妇喷水一区二区三区| 天堂中文а√在线| 91精品久久久久久| 亚洲国产精品天堂| 嫩草影视亚洲| 黄色三级视频在线| 欧美国产日产韩国视频| 91美女在线观看| 99热这里有精品| 91av在线免费播放| 国外成人在线播放| 自拍偷拍欧美激情| 亚洲精品动态| 91精品国产高久久久久久五月天| 欧美人与性动交a欧美精品| 不卡一区二区三区四区| 欧美xxxx性| 毛片av免费在线观看| 国产+成+人+亚洲欧洲| 国产精品美女一区二区在线观看| 超碰成人免费| www.4438全国最大| 国产精品www色诱视频| 婷婷综合另类小说色区| 国产精品sm| 国产三级伦理在线| 伊人久久99| 久久精品国产久精国产一老狼| 99九九99九九九视频精品| 在线观看亚洲一区| 欧美一区二区三区在线电影| 国产精品久线在线观看| 欧洲成人av| 国产麻豆日韩| 精品国产91乱码一区二区三区| 国产美女av一区二区三区| av在线播放一区二区| 亚洲高清在线免费观看| 国产精品啪视频| 欧美日韩专区在线| 免费黄色av电影| 日韩av快播网址| 日韩欧美高清在线视频| 亚洲欧美日韩视频二区| 大胆人体一区| 亚洲在线免费| 国产精品自拍在线| 美女隐私在线观看| 日韩在线免费视频观看| 久久青草国产手机看片福利盒子| 成人福利一区| 中文在线天堂网| 午夜精品一区二区三区四区| 深夜精品寂寞黄网站在线观看| 综合久久国产九一剧情麻豆| 午夜精品久久| 久久电影tv| 中国国产一级毛片| 亚洲成人精品电影在线观看| 欧美日韩第一视频| 在线精品视频一区二区三四| 国产一区中文字幕| 亚洲小说图片| yellow91字幕网在线| av在线观看地址| 成人精品网站在线观看| 亚洲成色999久久网站| 亚洲人被黑人高潮完整版| 一本久道久久综合狠狠爱| 99re8精品视频在线观看| 色视频免费在线观看| 成人免费a级片| 成人午夜又粗又硬又大| 欧美一二三区在线| 日韩有码片在线观看| 精品国产一区久久久| 91精品国产综合久久精品app|