Package: nudb
NUDBA Python module for NUDB.NUDB is a fast database and search engine.Menu:NUDBInstallUsage資料格式Connect to NUDBGet DB infoSearchGet record by rid or keyPut recordPut record from fileDelete record by rid or keyUpdate recordChange logInstall$pipinstallnudbUsage資料格式GAIS record以@開頭,:結尾作為欄位名稱:之後為欄位內容For example:// "@title:" 為欄位名稱@title:Mayday五月天[頑固Tough]OfficialMusicVideoJSONConnect to NUDBfromnudbimportNudbnudb=Nudb()nudb.connect('host','port','db')參數說明host: DB hostport: DB portdb: 指定 DB 名稱Get DB inforesult=nudb.get_DB_info(timeout=10)參數說明timeout: 設定 timeout，單位為 s，預設是 10s.Searchoptions={'db':'test','matchmode':'BestMatch','groupby':'@title:','getrec':'y','orderby':'score','order':'decreasing','minrid':100,'maxrid':10000,'ridrange':10000,'minscore':100,'maxscore':5000,'q':'旅遊','filter':'@viewcount:>1000','Sensitivity':'sensitive','p':1,'ps':10,'select':'@title:,@body:,@viewcount:','out':'json'}result=nudb.search(options,timeout=10);參數說明timeout: 設定 timeout，單位為 s，預設是 10 s.options: query optionsdb: 指定DBmatchmodeAndMatch (預設)OrMatchBestMatchgroupby: 指定欄位群組, 預設只有輸出key, count, 欄位格式為GAIS recordgetrec=y: 搭配groupby使用, 輸出全部資料orderbyrid: 依照rid排序score: 必須有參數q 才有scoregroupsize: 搭配groupby{FieldName}: 依照欄位(FieldName)排序在建立DB時, 數值欄位須設定-numfieldindex在建立DB時, 時間欄位須設定-timeindex{'orderby':'@viewcount:'}[min|max|ave|sum]{FieldName}: 找出欄位(FieldName)的最小/最大/平均/總和值{'orderby':'sum@viewcount:'}order: 搭配orderby使用, 預設為decreasingdecreasing: 遞減increasing: 遞增minrid: 設定rid最小值maxrid: 設定rid最大值ridrange: 設定搜尋的rid範圍, rid由大至小, 僅搜尋此範圍內的資料minscore: score最小值maxscore: score最大值q: 搜尋關鍵字可指定欄位搜尋, 欄位格式為GAIS record:{'q':'@title:日本旅遊'}可指定欄位值須完全符合:{'q':'@id:=abcd1234'}可設定所有條件須符合(AndMatch):{'q':'+@id:1234,+@name:test'}可搜尋多個欄位, 以","區隔:{'q':"@title:日本旅遊,@body:東京"}time: 可設定搜尋時間範圍在建立DB時, 時間欄位須設定-timeindex限定時間區間{'time':'=20180101-20180301'}特定時間以後{'time':'=>20180220122000'# YYYYMMDDHHmmss}特定時間以前{'time':'=<20180220122000'# YYYYMMDDHHmmss}限定某天{'time':'=20180220'}filter: 數值條件檢索, 沒有做數值欄位索引(-numfieldindex)也可查詢{'filter':'@price:<200'}{'filter':'@price:200-400'# 數值區間}maxcandidnumSensitivitysensitive: 預設, 區分大小寫insensitive: 不分大小寫keytermfieldkeytermstatp: page, 指定輸出page, 預設為1ps: page size, 每個page大小, 預設為10select: 指定輸出欄位, 欄位格式為GAIS record, 多個欄位之間以","區隔L: 指定回傳起始比數及總筆數{'L':30# 回傳30筆}{'L':'11,60'# 從第11筆開始, 輸出60筆}out: 輸出格式 (json or text)Get record by rid or keyresult=nudb.rget(data_id,search_field='rid',timeout=10)參數說明data_id: Record ID or primary key.search_field: 搜尋的欄位，rid 或 key, 預設是 rid.timeout: 設定 timeout，單位為 s，預設是 10s.Put record# format: json or textresult=nudb.rput(data,data_type,rec_beg=None,timeout=10)參數說明data: 資料data_type: 資料格式(json or text)rec_beg: record begin pattern, 若資料格式為text則必須有此參數timeout: 設定 timeout，單位為 s，預設是 10s.Put record from fileresult=nudb.fput(file_path,data_type,rec_beg=None,timeout=60)參數說明file_path: 要上傳的檔案data_type: 資料格式(json or text)rec_beg: record begin pattern, 若資料格式為text則必須有此參數timeout: 設定 timeout，單位為 s，預設是 60s.Delete record by rid or keyresult=nudb.rdel(data_id,search_field='rid',timeout=10)參數說明data_id: Record ID 或 primary key, 一次刪除多筆可使用,區隔多個 idsearch_field: 搜尋的欄位，rid 或 key, 預設是 rid.timeout: 設定 timeout，單位為 s，預設是 10s.Update recordresult=nudb.rupdate(data_id,data,data_type,search_field='rid',update_method='replaceRecord',timeout=10)參數說明data_id: 要更新的資料rid or primary keydata: 更新的資料內容data_type: 資料格式(json or text)search_field: 搜尋的欄位，rid 或 key, 預設是 rid.update_method: 更新方式replaceRecord: 取代整筆資料 (Default)replaceField: 取代指定欄位的資料timeout: 設定 timeout，單位為 s，預設是 10s.Change log