Redisearch的基本命令2:--FT.ADD FT.ADDHASH FT.ALTER

sayWhat_sayHello發表於2018-06-30

FT.ADD

FT.ADD {index} {docId} {score} 
  [NOSAVE]
  [REPLACE [PARTIAL]]
  [LANGUAGE {language}] 
  [PAYLOAD {payload}]
  [IF {condition}]
  FIELDS {field} {value} [{field} {value}...]

上一篇部落格裡講了FT.CREATE,提到index是基礎,那麼為什麼是基礎呢,以為接下來的每條命令都會用到建立過的index。

基本使用:

 ft.add dept dept1 1 fields id 001 name dept001

代表向index dept新增一條document,這條documentiddept1score為1,欄位id的值為數字1,name“dept001”

選項:

    docId: 這裡說是id並不代表只能說數字,可以是字串。作為document的唯一標識。
    score: 評分,類似於zset裡的score,範圍從0~1,如果不知道打多少可以預設打1。
    NOSAVE:如果開啟該選項我們不會在索引時儲存真正的document。
    REPLACE:更新或者插入,刪除原本的document
    PARTIAL (only applicable with REPLACE):在replace的時候指定對應的列
    FIELDS: 欄位對應create index時的schema
    PAYLOAD {payload}: 在查詢的時候使用,還不是太理解。。。
    IF {condition}: 配合replace使用,對判斷語句進行判斷後決定是否生效replace e.g. FT.ADD idx doc 1 REPLACE IF "@timestamp < 23323234234".
    LANGUAGE language: 指定語言,可以是中文:chinese

FT.ADDHASH

 FT.ADDHASH {index} {docId} {score} [LANGUAGE language] [REPLACE]

addhash 我覺得是真正把redis和redisearch連起來的地方,addhash 可以新增一個redishash key。這幾個選項和上面的差不多就不贅述了。

例子:

hset dept2 id 002 name dept002
ft.addhash dept dept2 1

這裡寫圖片描述

FT.ALTER

FT.ALTER {index} SCHEMA ADD {field} {options} ...

修改schema的欄位結構。注意新add的會被重新索引,原本存在的不會改變。

相關文章