最接地氣的工作日常

2021-08-09:

  1. POJO類中布爾類型的變量,命名時(shí)不要加is挥下,否則部分框架解析時(shí)會(huì)引起序列化錯(cuò)誤泄私。(因?yàn)樵贛ySQL中規(guī)定表達(dá)是與否的值采用is_xxx的命名方式欺缘,所以在Mybatis的<ResultMap>中需要設(shè)置is_xxx到xxx的映射關(guān)系,例如RPC框架在反向解析的時(shí)候會(huì)對(duì)屬性名稱發(fā)生誤認(rèn)的情況箭阶,導(dǎo)致屬性獲取不到虚茶,進(jìn)而拋出異常)。

  2. 如果變量值僅在一個(gè)范圍內(nèi)變化仇参,且?guī)в忻Q之外的延伸屬性嘹叫,定義為枚舉類。例如:

public enum SeasonEnum {
    SPRING(1), SUMMER(2), AUTUMN(3), WINTER(4);
    private int seq;

    SeasonEnum(int seq) {
        this.seq = seq;
    }
    
    public int getSeq() {
        return seq;
    }
}
  1. IDE中的text file encoding設(shè)置為UTF-8诈乒,文件的換行符使用Unix格式罩扇。

  2. 當(dāng)訪問(wèn)一個(gè)類的靜態(tài)變量或靜態(tài)方法時(shí),直接用類名訪問(wèn)即可怕磨,避免通過(guò)類的對(duì)象引用來(lái)訪問(wèn)喂饥,這樣會(huì)無(wú)謂地增加編譯器的解析成本。

  3. 當(dāng)比較對(duì)象時(shí)肠鲫,開發(fā)人員通常希望比較對(duì)象的屬性员帮。然而在沒(méi)有明確實(shí)現(xiàn)equals()方法的類上調(diào)用equals()會(huì)導(dǎo)致調(diào)用繼承自O(shè)bject的equals()方法,該方法比較的是兩個(gè)對(duì)象是否相同导饲,而不是比較成員變量或者屬性捞高。

  4. 浮點(diǎn)數(shù)之間和基本數(shù)據(jù)類型之間的等值判斷不能用==來(lái)比較氯材;包裝數(shù)據(jù)類型之間不能用equals()比較。這是因?yàn)楦↑c(diǎn)數(shù)采用尾數(shù)+階碼的編碼方式棠枉,二進(jìn)制無(wú)法精確表示大部分的十進(jìn)制小數(shù)浓体。前者可以指定一個(gè)誤差范圍泡挺,兩個(gè)浮點(diǎn)數(shù)的差值在此范圍之內(nèi)辈讶,則認(rèn)為是相等的;后者使用BigDecimal來(lái)定義值娄猫,再進(jìn)行浮點(diǎn)數(shù)的運(yùn)算操作:

(1)
float a = 1.0f - 0.9f;
float b = 0.9f - 0.8f;
float diff = 1e-6f;

if (Math.abs(a - b) < diff) {
    return true;
}

(2)
BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("0.9");
BigDecimal c = new BigDecimal("0.8");

BigDecimal x = a.subtract(b);
BigDecimal y = b.subtract(c);
if (x.compareTo(y)) {
    return true;
}
  1. 定義數(shù)據(jù)對(duì)象DO類時(shí)贱除,屬性類型要與數(shù)據(jù)庫(kù)字段類型相匹配。

  2. 禁止使用構(gòu)造方法BigDecimal(double)的方式把double值轉(zhuǎn)化為BigDecimal對(duì)象媳溺,因?yàn)檫@樣存在精度損失風(fēng)險(xiǎn)月幌,推薦使用入?yún)镾tring的構(gòu)造方法或者使用valueOf()方法,因?yàn)樵摲椒▋?nèi)部執(zhí)行了Double的toString()方法悬蔽,即:

BigDecimal recommend1 = new BigDecimal("0.1");
BigDecimal recommend2 = BigDecimal.valueOf(0.1);
  1. 所有的POJO類屬性必須使用包裝數(shù)據(jù)類型扯躺,RPC(Remote Procedure Call)方法的返回值和參數(shù)必須使用包裝數(shù)據(jù)類型,所有的局部變量使用基本數(shù)據(jù)類型蝎困。這是因?yàn)镻OJO類屬性沒(méi)有初值是提醒使用者在需要使用時(shí)录语,必須自己顯式地進(jìn)行賦值,任何空指針問(wèn)題或者入庫(kù)檢查禾乘,均由使用者來(lái)保證澎埠;第二點(diǎn)數(shù)據(jù)庫(kù)的查詢結(jié)果可能為null,因?yàn)樽詣?dòng)拆箱機(jī)制始藕,用基本數(shù)據(jù)類型接收會(huì)有NPE風(fēng)險(xiǎn)蒲稳。

  2. 使用索引訪問(wèn)String的split方法得到的數(shù)組時(shí),需要做最后一個(gè)分割符號(hào)后有無(wú)內(nèi)容的檢查伍派,否則有拋出IndexOutOfBoundsException的風(fēng)險(xiǎn)江耀。

  3. 不允許在程序的任何地方使用java.sql.Date, java.sql.Time, java.sql.Timestamp。這是因?yàn)榈谝粋€(gè)不記錄時(shí)間時(shí)诉植,getHours()會(huì)拋出異常祥国,第二個(gè)不記錄日期時(shí),getYear()會(huì)拋出異常倍踪,第三個(gè)java.util.Date.after(Date)進(jìn)行時(shí)間比較時(shí)系宫,當(dāng)傳入?yún)?shù)為java.sql.Timestamp時(shí),會(huì)觸發(fā)JDK BUG(jdk9已修復(fù))建车。

2021-08-10:

從SVN上拉代碼扩借,搞依賴問(wèn)題,好像沒(méi)干啥

2021-08-11:

  1. 在導(dǎo)師的指導(dǎo)下獲取到了原項(xiàng)目的maven庫(kù)缤至,直接拷貝作為本地的maven倉(cāng)庫(kù)潮罪,解決了缺乏相關(guān)依賴的問(wèn)題康谆;由于在pom.xml的<parent>標(biāo)簽和<dependency>標(biāo)簽中重復(fù)定義了spring-boot-starter的依賴,導(dǎo)致依賴沖突嫉到,通過(guò)注釋掉<dependency>中的定義沃暗,暫時(shí)解決了項(xiàng)目中注解報(bào)紅的錯(cuò)誤。但是后者的注釋中提到了數(shù)據(jù)庫(kù)加密的作用何恶,在此先記下

  2. maven報(bào)錯(cuò):Dependency is duplicated in file(s): 依賴只需要父pom或者子pom來(lái)定義一次就可以了孽锥。一般在父類pom中添加依賴就可以了

  3. maven中pom.xml中的parent標(biāo)簽作用是管理多個(gè)項(xiàng)目之間的共同依賴:(1)有兩個(gè)web項(xiàng)目W1、W2细层,一個(gè)java項(xiàng)目J1惜辑,依賴同一個(gè)jar包:domain.jar。解決辦法是在parent項(xiàng)目的pom文件中定義對(duì)domain.jar的依賴疫赎,W1W2J1三個(gè)子項(xiàng)目中只需要定義<parent></parent>盛撑,parent標(biāo)簽中寫上parent項(xiàng)目的pom坐標(biāo)就可以引用到domain.jar了。(2)有一個(gè)springweb.jar捧搞,只有W1W2兩個(gè)web項(xiàng)目需要抵卫,J1項(xiàng)目是java項(xiàng)目不需要。解決辦法是在parent項(xiàng)目的pom文件中使用<dependencyManagement></dependencyManagement>將springweb.jar管理起來(lái)胎撇,如果有哪個(gè)子項(xiàng)目要用介粘,那么子項(xiàng)目在自己的pom文件中使用

2021-08-12:

  1. Cypher中的邏輯運(yùn)算符比較表:


    cypher中的邏輯比較
  2. Cypher中,null代表丟失或者未定義的值

  3. a[coalesce($lower, 0)..coalesce($upper, size(a))]

  4. 做圖嵌入方法的調(diào)研腦圖

2021-08-13:

查找梳理總結(jié)各種知識(shí)圖譜嵌入算法特點(diǎn)创坞,繪制腦圖

2021-08-16:

搜集整理各大廠商的知識(shí)圖譜表述學(xué)習(xí)在反欺詐和反洗錢的應(yīng)用進(jìn)展

2021-08-17:

繪制知識(shí)圖譜風(fēng)控項(xiàng)目的結(jié)構(gòu)腦圖

2021-08-18:

  1. javax.persistence.Id //說(shuō)明是主鍵(@Id此注解不能省略)
    @GenerateValue(generator = "S_USER_ID") //主鍵的生成方式
    @Table(name = "USER") //指定數(shù)據(jù)庫(kù)對(duì)應(yīng)的表
    @Column(name = "USER_NAME") //數(shù)據(jù)庫(kù)字段和類屬性對(duì)應(yīng)關(guān)系
    @EntityListeners表示對(duì)實(shí)體屬性變化的追蹤碗短,他提供了保存前,保存后题涨,更新前偎谁,更新后,刪除前纲堵,刪除后等狀態(tài)巡雨,就像是攔截器一樣,可以在攔截方法里面重寫個(gè)性化邏輯
    @Embedded注解表示它是一個(gè)內(nèi)嵌到當(dāng)前實(shí)體的對(duì)象席函,它本身不是實(shí)體铐望,它只表示實(shí)體里的某些字段
    @Embeddable注解表示不會(huì)生成新的數(shù)據(jù)表,而它的屬性會(huì)在其他表的內(nèi)部茂附,比較容易實(shí)現(xiàn)代碼復(fù)用
    @Transactional注解表示啟用事務(wù)管理功能

  2. 一個(gè)數(shù)據(jù)庫(kù)表中不能有兩個(gè)及兩個(gè)以上的主鍵正蛙,但是允許多個(gè)字段聯(lián)合組成主鍵

  3. dbentity包中一個(gè)具體的實(shí)體類延伸的諸如Key/Base/RealRelation/RelationGenealogy/Tmp變體之間互相嵌套是為了什么;類名前綴為KgpZSZH的類大多對(duì)應(yīng)著具體的數(shù)據(jù)庫(kù)表营曼,每個(gè)字段的具體含義一知半解乒验;

  4. Scheduler(調(diào)度器)是Quartz框架的心臟。其生命周期始于通過(guò)ScheduleFactory工廠類創(chuàng)建實(shí)例蒂阱,終于shutdown()方法锻全。Scheduler不僅可以用于新增狂塘、移除、和列舉Jobs和Triggers鳄厌,還可以執(zhí)行調(diào)度相關(guān)工作荞胡,比如暫停Trigger,恢復(fù)Trigger等了嚎。主要注意的是泪漂,直到調(diào)用start()方法時(shí),Scheduler才開始執(zhí)行Job和Trigger新思。Job(作業(yè))是指執(zhí)行一些作業(yè)的特定的Java類窖梁。Job必須實(shí)現(xiàn)org.quartz.Job接口赘风,這個(gè)接口要求在Job中實(shí)現(xiàn)excute()方法夹囚。當(dāng)Quartz調(diào)用excute()方法,會(huì)傳遞一個(gè)JobExecutionContext上下文變量邀窃,里面封裝有Quartz的運(yùn)行環(huán)境和當(dāng)時(shí)正在執(zhí)行的Job荸哟。JobExecutionContext可以被用來(lái)訪問(wèn)JobDetail類,該類持有Job的詳細(xì)信息瞬捕,包括為Job實(shí)例指定的名稱鞍历,Job所屬組,Job是否被持久化肪虎。JobDetail持有一個(gè)指向JobDataMap的引用劣砍,JobDataMap中包含Job配置的自定義屬性。Trigger(觸發(fā)器)用于觸發(fā)Job的執(zhí)行扇救,最常用的類型包括SimpleTrigger和CronTrigger刑枝。

2021-08-19:

調(diào)研總結(jié)多模態(tài)相關(guān)的資料文檔

2021-08-20:

撰寫多模態(tài)調(diào)研報(bào)告

2021-08-23:

看repository這個(gè)包,里面有sql,有cypher迅腔,都看了看装畅,晚上看視頻學(xué)spring-batch

2021-08-24:

連接項(xiàng)目的mysql和neo4j的數(shù)據(jù)庫(kù);看完了spring-batch教程

2021-08-25:

粗略地看了項(xiàng)目中除batch以外的所有包沧烈;繼續(xù)撰寫整理調(diào)研報(bào)告

2021-08-26:

修改調(diào)研報(bào)告

2021-08-27:

繼續(xù)修改補(bǔ)充

2021-08-30:

GoodsKG:本項(xiàng)目以京東電商為實(shí)驗(yàn)數(shù)據(jù)來(lái)源掠兄,采集京東商品目錄樹,并獲取其對(duì)應(yīng)的底層商品概念信息锌雀,組織形成商品知識(shí)圖譜蚂夕。目前,該圖譜包括有概念的上下位is a關(guān)系以及商品品牌與商品之間的銷售sale關(guān)系以及部分混合關(guān)聯(lián)關(guān)系腋逆,涉及商品概念數(shù)目1300+婿牍,商品品牌數(shù)目約10萬(wàn)+,屬性數(shù)目幾千種闲礼,關(guān)系數(shù)目65萬(wàn)規(guī)模玄叠。
AliCoCo:阿里的認(rèn)知概念商品圖譜挺強(qiáng)的百侧,由機(jī)器學(xué)習(xí)和人工協(xié)作構(gòu)建而成楔绞,包含了285萬(wàn)個(gè)原始概念和526萬(wàn)個(gè)電子商務(wù)概念,3億多個(gè)實(shí)體項(xiàng)目嫁蛇,4千億個(gè)關(guān)系。但是不開源.........
亞馬遜也有一個(gè)商品知識(shí)圖譜露该,名字叫Product Knowledge Graph睬棚,看了兩篇相關(guān)論文也沒(méi)公開數(shù)據(jù)集

2021-08-31:

  1. 百分點(diǎn)這個(gè)用戶畫像數(shù)據(jù)集是四年前的數(shù)據(jù)集,所以每一行第一項(xiàng)的商品具體信息會(huì)不可避免地不適應(yīng)現(xiàn)在的電商推薦解幼;能夠與京東數(shù)據(jù)集互補(bǔ)的是每一行的品牌信息與類目信息抑党,這兩項(xiàng)信息對(duì)時(shí)間不太敏感,但是這兩個(gè)數(shù)據(jù)并不是每一行都有撵摆,而且每一行的數(shù)據(jù)格式不統(tǒng)一底靠,所以融合兩個(gè)數(shù)據(jù)集需要大量的人工操作。
  2. Neo4j 4.0新特性:(1)在獨(dú)立服務(wù)器或因果群集中特铝,每個(gè)服務(wù)器實(shí)例支持多個(gè)數(shù)據(jù)庫(kù)(multi-databases)暑中,以實(shí)現(xiàn)對(duì)數(shù)據(jù)的物理隔離和分布式存儲(chǔ)(即“分庫(kù)”、"分圖")鲫剿。(2)增強(qiáng)的Cypher特性支持對(duì)跨數(shù)據(jù)庫(kù)的讀取操作鳄逾,寫入操作仍然限于單個(gè)數(shù)據(jù)庫(kù)。(3)新增的Neo4j Fabric服務(wù)器可以在Cypher查詢中對(duì)分片(跨數(shù)據(jù)庫(kù)灵莲、跨集群)的數(shù)據(jù)庫(kù)進(jìn)行查詢雕凹,類似“聯(lián)邦式查詢(Federated Query)”。
  3. 討論如何實(shí)現(xiàn)基于知識(shí)圖譜的精準(zhǔn)搜索政冻,討論結(jié)果是基于word2vec詞向量模型訓(xùn)練出知識(shí)圖譜的每個(gè)節(jié)點(diǎn)特征枚抵,然后query送入該分類器中直接匹配相似實(shí)體,加快cypher的匹配搜索速度

2021-09-01:

  1. 知識(shí)圖譜的關(guān)鍵字搜索:經(jīng)典的解決方案是Group Steiner Tree赠幕,即大致確定每個(gè)關(guān)鍵字的匹配項(xiàng)俄精,然后根據(jù)適當(dāng)?shù)慕咏雀拍?eg,最短的連接路徑)組合匹配項(xiàng)榕堰。19年一篇論文提出的WikiSearch引入了一個(gè)稱為最小激活層次的約束竖慧,該約束是節(jié)點(diǎn)命中級(jí)別的下限,即在滿足該約束條件之前無(wú)法命中節(jié)點(diǎn)逆屡。這樣可以讓命中級(jí)別反映關(guān)鍵字和節(jié)點(diǎn)之間的語(yǔ)義相關(guān)性圾旨。該激活層的計(jì)算方法如下:
    (1)由觀察發(fā)現(xiàn),具有大量相同標(biāo)記邊的節(jié)點(diǎn)往往是匯總節(jié)點(diǎn)魏蔗,并且是往往導(dǎo)致無(wú)意義的連接捷徑砍的。匯總度越大,就說(shuō)明該節(jié)點(diǎn)相對(duì)其他節(jié)點(diǎn)可能包含的信息量就越少:
    節(jié)點(diǎn)匯總度計(jì)算公式.png

    節(jié)點(diǎn)的匯總度就是將所有邊上的平均值視為該節(jié)點(diǎn)的總匯總度莺治。其中通過(guò)平均所有邊廓鞠,考慮了邊標(biāo)簽的多樣性帚稠,也就是說(shuō)如果節(jié)點(diǎn)具有許多不同的邊標(biāo)簽,即使他具有相對(duì)大量的邊床佳,它可能仍然具有意義滋早。
    (2)通過(guò)獎(jiǎng)懲映射獲得最小激活層次,并有一個(gè)可調(diào)參數(shù)α 使用戶能在運(yùn)行時(shí)設(shè)置匯總度的偏好砌们。該映射策略的直覺(jué)是授予有信息量的節(jié)點(diǎn)以較小的權(quán)重和更低的激活層級(jí)杆麸,使他們具有高于匯總節(jié)點(diǎn)的搜索優(yōu)先級(jí)。獎(jiǎng)懲映射首先通過(guò)采樣計(jì)算圖中隨機(jī)兩節(jié)點(diǎn)之間的平均距離浪感,然后昔头,根據(jù)節(jié)點(diǎn)和 α 的權(quán)重,我們通過(guò)在一定程度上增加(懲罰)或減少(獎(jiǎng)勵(lì))平均距離來(lái)計(jì)算激活層級(jí)影兽。這樣揭斧,我們可以使激活層級(jí) 在合理的范圍內(nèi)來(lái)控制搜索。
    節(jié)點(diǎn)激活層級(jí)計(jì)算公式.png

    (3)在搜索過(guò)程中赢笨,激活層次小的節(jié)點(diǎn)將變?yōu)榧せ顮顟B(tài)未蝌,可以在早期進(jìn)行搜索。當(dāng)沒(méi)有更好結(jié)果時(shí)茧妒,可以返回上一激活層級(jí)進(jìn)行搜索。
  2. 安裝neo4j 4.0和運(yùn)行一個(gè)spring-data-neo4j項(xiàng)目左冬,期間配置了jdk11桐筏,熟悉了windows的jdk環(huán)境變量配置以及maven的jdk版本修改方法(File->Projrct Structure->SDKs->選擇JDK home PATH即可)

2021-09-02:

1.Neo4jClient是neo4j的java驅(qū)動(dòng)上面薄薄的一層,并不會(huì)和應(yīng)用級(jí)別的事務(wù)勾搭在一起拇砰。結(jié)合項(xiàng)目代碼看spring-data-neo4j開發(fā)手冊(cè)的API梅忌。
2.VO(View Object):視圖對(duì)象用于展示層,作用是把某個(gè)頁(yè)面所有的數(shù)據(jù)封裝起來(lái)除破;DTO(Data Transfer Object)數(shù)據(jù)傳輸對(duì)象牧氮,用于展示層和服務(wù)層之間的數(shù)據(jù)傳輸對(duì)象;DO(Domain Object)領(lǐng)域?qū)ο蠊宸悖笍默F(xiàn)實(shí)世界中抽象出來(lái)的業(yè)務(wù)實(shí)體踱葛;PO(Persistent Object)持久化對(duì)象,是和持久層的數(shù)據(jù)結(jié)構(gòu)形成以一一對(duì)應(yīng)的映射關(guān)系光坝,如果持久層是關(guān)系型數(shù)據(jù)庫(kù)尸诽,那么表中的每個(gè)字段就對(duì)應(yīng)PO中的每個(gè)屬性。具體的流程如下所示:

  • 用戶發(fā)出請(qǐng)求(可能是填寫表單)盯另,表單的數(shù)據(jù)在展示層被匹配為VO性含。
  • 展示層把VO轉(zhuǎn)換為服務(wù)層對(duì)應(yīng)方法所要求的DTO,傳送給服務(wù)層鸳惯。
  • 服務(wù)層首先根據(jù)DTO的數(shù)據(jù)構(gòu)造(或重建)一個(gè)DO商蕴,調(diào)用DO的業(yè)務(wù)方法完成具體業(yè)務(wù)叠萍。
  • 服務(wù)層把DO轉(zhuǎn)換為持久層對(duì)應(yīng)的PO(可以使用ORM工具,也可以不用)绪商,調(diào)用持久層的持久化方法俭令,把PO傳遞給它,完成持久化操作部宿。
  • 對(duì)于一個(gè)逆向操作抄腔,如讀取數(shù)據(jù),也是用類似的方式轉(zhuǎn)換和傳遞理张,略赫蛇。

2021-09-03:

1.在Windows下使用python的py2neo庫(kù),會(huì)報(bào)OverflowError: mktime argument out of range錯(cuò)誤雾叭。因?yàn)閣indows的時(shí)間戳是由int類型保存的悟耘,所以時(shí)間戳的最大值就是2147483647,也就是說(shuō)時(shí)間戳的范圍不能早于midnight, January 1, 1970织狐,不能晚于23:59:59 January 18, 2038暂幼。超過(guò)localtime()這個(gè)C函數(shù)提供的范圍,非POSIX系統(tǒng)(簡(jiǎn)單理解為類Unix操作系統(tǒng))就會(huì)報(bào)錯(cuò)移迫。我直接去它庫(kù)里找到報(bào)錯(cuò)的文件代碼旺嬉,直接注釋掉了,反正我就插幾條數(shù)據(jù)厨埋,跟時(shí)間又沒(méi)關(guān)系邪媳,哈哈哈哈,解決不了問(wèn)題荡陷,我直接把提出問(wèn)題的你給解決了

  1. 往neo4j里面插cypher雨效,65萬(wàn)條關(guān)系插了特么6個(gè)多小時(shí),還沒(méi)全抽進(jìn)去废赞,不知道是關(guān)系重合了還是咋回事兒徽龟,而且有學(xué)習(xí)批處理插入操作的需求

2021-09-06:

1.模仿demo項(xiàng)目寫測(cè)試接口
2.寫neo4j 4.3版本新特性報(bào)告

2021-09-07:

  1. 導(dǎo)入demo項(xiàng)目的movies數(shù)據(jù)庫(kù),結(jié)合具體數(shù)據(jù)理解demo項(xiàng)目的查詢封裝操作
  2. 分析電商部門的數(shù)據(jù)唉地,學(xué)習(xí)csv批量導(dǎo)入\color{red}{注意兄弟們据悔,記得給每個(gè)節(jié)點(diǎn)加索引,導(dǎo)入的時(shí)候老快了}

    stocks.csv

    stocks_exchage.csv
CREATE CONSTRAINT ON (exchange:Exchange) ASSERT exchange.exId IS UNIQUE
:AUTO USING PERIODIC COMMIT 10000 
LOAD CSV WITH HEADERS FROM 'file:///exchange.csv' AS line  
Create (:Exchange {name:line.name, chinesename:line.chinesename, id:line.id})

CREATE CONSTRAINT ON (stock:Stock) ASSERT stock.stId IS UNIQUE
:AUTO USING PERIODIC COMMIT 10000  
LOAD CSV WITH HEADERS FROM 'file:///Stocks.csv' AS line 
Create (:Stocks {name:line.name, cocode:line.cocode, id:line.id})

:AUTO USING PERIODIC COMMIT 10000 
LOAD CSV WITH HEADERS FROM 'file:///Stocks_exchange.csv' AS line
MATCH (stock:Stocks {cocode:line.stock_code}), 
MATCH (exchange:Exchange { id: line.exchange_id })
MERGE (stock) -[r:交易所]->(exchange)

2021-09-08:

1.修改電商數(shù)據(jù)文件的編碼格式

  1. 在Lunix上部署neo4j 4.3.3渣蜗,遇到了一個(gè)ServiceUnavailable的錯(cuò)誤屠尊,上網(wǎng)查問(wèn)題發(fā)現(xiàn)是當(dāng)有遠(yuǎn)程的瀏覽器連接請(qǐng)求發(fā)來(lái),進(jìn)行身份驗(yàn)證時(shí)會(huì)出此錯(cuò)誤耕拷,解決方法是去conf文件中把bolt協(xié)議的一行注釋解開讼昆,在:7687前面加上0.0.0.0
dbms.connector.bolt.enabled=true
dbms.connector.bolt.listen_address=0.0.0.0:7687
dbms.connector.bolt.advertised_address=0.0.0.0:7687
  1. netstat -nultp 查看端口服務(wù)

4.把電商數(shù)據(jù)的所有節(jié)點(diǎn)導(dǎo)進(jìn)了neo4j

2021-09-09:

1.把電商數(shù)據(jù)的關(guān)系導(dǎo)進(jìn)了neo4j
2.寫知識(shí)圖譜應(yīng)用與挑戰(zhàn)報(bào)告

2021-09-10:

1.在公司內(nèi)網(wǎng)運(yùn)行demo項(xiàng)目編譯的時(shí)候遇到了Disconnected from the target VM, address....找不到或無(wú)法加載主類的問(wèn)題,原因是我自己在導(dǎo)入項(xiàng)目到IDEA中時(shí),直接從idea的工作空間中導(dǎo)入到了工作空間中浸赫,人家導(dǎo)入的時(shí)候就詢問(wèn)了是否要覆蓋闰围,我特么還選了是.......導(dǎo)致工作空間被篡改了,所以肯定就找不到啟動(dòng)類了啊
2.寫了一個(gè)查詢API既峡,調(diào)試成功

2021-09-13:

1.編寫接口測(cè)試4.3版本的neo4j是否支持對(duì)不同數(shù)據(jù)庫(kù)進(jìn)行查詢操作羡榴,測(cè)試結(jié)果可行
2.畫監(jiān)管數(shù)據(jù)ppt

2021-09-14:

1.Windows查看端口被進(jìn)程ID占用的命令:netstat -aon|findstr "8080"
Linux查看端口被占用的命令:netstat -anp|grep 8080

2.testcontainer簡(jiǎn)單理解就是可以通過(guò)編程語(yǔ)言啟動(dòng)Docker容器,并在程序測(cè)試結(jié)束后运敢,自動(dòng)關(guān)閉Docker校仑。

3.調(diào)整項(xiàng)目沖突的過(guò)程中發(fā)現(xiàn)當(dāng)升級(jí)到JDK11時(shí),項(xiàng)目無(wú)法啟動(dòng)并報(bào)警告:An illegal reflective access operation has occured传惠,原因是新版本JDK中的module system(模塊系統(tǒng))對(duì)jdk中的模塊進(jìn)行了反射檢查迄沫,凡是反射了JDK中的類的操作都會(huì)被警告,老項(xiàng)目里面hibernate的session會(huì)話把實(shí)體類保存到數(shù)據(jù)庫(kù)的操作是出了名的反射機(jī)制卦方,oracle官網(wǎng)文檔說(shuō)要想繼續(xù)在新版本上啟動(dòng)羊瘩,就得用--add-opens在VM配置中\color{red}{把所有類路徑上發(fā)生了反射訪問(wèn)操作的庫(kù)都給蓋住},csdn上面有人蓋了下面這坨東西:

--add-opens java.base/sun.nio.ch=ALL-UNNAMED
--add-opens java.base/java.io=ALL-UNNAMED
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
--add-opens java.base/java.text=ALL-UNNAMED 
--add-opens java.desktop/java.awt.font=ALL-UNNAMED

但是我在項(xiàng)目里面添了這些東西還是不夠盼砍,控制臺(tái)報(bào)錯(cuò)的內(nèi)容里我看見有跟hibernate相關(guān)的類尘吗,內(nèi)容好像是說(shuō)無(wú)法拿到持久化里面的entity.SingleTableEntityPersister這個(gè)類的構(gòu)造器,進(jìn)而無(wú)法構(gòu)建會(huì)話工廠
4.多態(tài):多態(tài)是針對(duì)\color{red}{方法}而言的浇坐,一個(gè)對(duì)象的實(shí)際類型是確定的睬捶,但是指向這個(gè)對(duì)象的引用類型就不確定了,舉例來(lái)說(shuō)就是父類的引用可以指向子類

2021-09-15:

1.Hibernate的反射機(jī)制:

  • 先根據(jù)查詢條件構(gòu)造PreparedStatement語(yǔ)句吗跋,該語(yǔ)句會(huì)返回從數(shù)據(jù)庫(kù)查詢到的屬性值
  • 通過(guò)讀取User類的配置文件獲取該類的屬性列表list(String列表)和每個(gè)屬性的類型
  • 創(chuàng)建User的實(shí)例對(duì)象myUser
  • 寫for循環(huán)侧戴,循環(huán)次數(shù)是list.length:
    1. 讀取list[i]的值,然后寫該屬性的set方法
    2. 判斷l(xiāng)ist[i]的類型跌宛,調(diào)用PreparedStatement中的get方法得到該字段的值
    3. 將3中得到的值作為參數(shù)傳到1的set方法里面,這樣就完成了一個(gè)字段向一個(gè)屬性的賦值
  • 如此循環(huán)即可
  1. 反射是在運(yùn)行時(shí)才知道要操作的類是什么积仗,并且在運(yùn)行時(shí)才獲得類的完整構(gòu)造疆拘,并調(diào)用對(duì)應(yīng)的方法
package movies.spring.data.neo4j.nodes;

import movies.spring.data.neo4j.movies.Movie;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class ReflectTest {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
        //正射
        JinDoll doll = new JinDoll();
        doll.setName("六合");
        System.out.println("正射:" + doll.getName());
        //反射
        Class clz = Class.forName("movies.spring.data.neo4j.nodes.JinDoll");
        Method setNameMethod = clz.getMethod("setName", String.class);
        Constructor dollConstructor = clz.getConstructor();
        Object dollObj = dollConstructor.newInstance();
        setNameMethod.invoke(dollObj, "秘雕");
        Method getNameMethod = clz.getMethod("getName");
        System.out.println("反射:" + getNameMethod.invoke(dollObj));
    }
}

上面寫代碼的過(guò)程之中一開始是想反射一個(gè)構(gòu)造函數(shù)是有參的類的,但是寫到clz.getConstructor()這一部IDEA就沒(méi)報(bào)錯(cuò)寂曹,但是既然是反射有參哎迄,你在獲取被反射類的完整構(gòu)造時(shí)就得傳入所有參數(shù)的類型,不然編譯的時(shí)候還得報(bào)NoSuchMethodException的錯(cuò)誤隆圆,后面newInstance()時(shí)候又報(bào)錯(cuò)了漱挚,這我就懶得解決了,直接寫了一個(gè)默認(rèn)構(gòu)造是無(wú)參的類渺氧,反射測(cè)試一下完事兒旨涝,后面看狂神的視頻看看他教沒(méi)教咋反射有參構(gòu)造的類吧......

  1. JPA全稱Java Persistence API,即Java持久化接口侣背,通過(guò)注解或xml描述對(duì)象與表之間的映射關(guān)系白华,并將運(yùn)行期的實(shí)體對(duì)象持久化到數(shù)據(jù)庫(kù)中慨默。JPA和Hibernate的關(guān)系可以簡(jiǎn)單理解為JPA是接口,Hibernate是實(shí)現(xiàn)弧腥,但是并不是單一的對(duì)標(biāo)關(guān)系厦取。Hibernate不僅遵循JPA的規(guī)范,還遵循其他標(biāo)準(zhǔn)的規(guī)范管搪。舉個(gè)例子虾攻,JPA是一種做面條的規(guī)范,那么Hibernate就是遵循JPA規(guī)范做成的一碗湯面更鲁,但是湯面不僅遵循面條的規(guī)范霎箍,他還遵循湯和調(diào)料的其它規(guī)范。
  2. 老項(xiàng)目只要拿JDK11跑岁经,依賴就會(huì)報(bào)各種各樣的錯(cuò)誤朋沮,拿JDK8就沒(méi)事兒

2021-09-16:

1.RedisGraph之所以查詢速度快,是因?yàn)樗昧薍exastore稀疏矩陣把圖存儲(chǔ)在內(nèi)存中
2.上午調(diào)研RedisGraph缀壤,看github官網(wǎng)文檔樊拓;下午安裝Ubuntu虛擬環(huán)境準(zhǔn)備測(cè)試RedisGraph

2021-09-17

1.Linux顯示當(dāng)前路徑: pwd
查看磁盤空間:df -hl
查看服務(wù)狀態(tài): ps -ef|grep redis
vim快速查找: /你想找的字符串 或者 ?你想找的字符串
2.用VMware配置了下虛擬機(jī),熟悉了下Ubuntu的復(fù)制塘慕,刪除筋夏,下載軟件的命令,配個(gè)了清華鏡像
2.git clone RedisGraph一天都clone不下來(lái)图呢,最后靠著敬之哥的VPN clone下來(lái)了

2021-09-18

1.make工具是通過(guò)makefile文件來(lái)描述大型項(xiàng)目的源程序之間的依賴關(guān)系并自動(dòng)維護(hù)編譯工作条篷。
死活就是make不成功啊,我也很絕望啊

  1. 重新安裝了redis6.2.5版本
??????????????????????????
??????????????????????????
???????????????????????????
???????????????????????????
??????????????????????????
????????????????????????????
???????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
???????????????????????????
???????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
??????????????????????????
???????????????????????????

3.redis高級(jí)方法:

  • set key value;get key;keys *;exists key;append key "xxx";expire key secongds;strlen key;incr key
  • setex和setnx完成分布式鎖的操作
  • set object:id:field value 例如:set article:999:views 23 設(shè)置第999篇文章的瀏覽量為23
  • getset db redis 先get再set如果不存在值蛤织,則返回null赴叹;如果存在值,則獲取返回原來(lái)的值指蚜,再設(shè)置新的值
  • lpush list value;lrange list 0 -1;rpush list value;lpop list value;lindex list integer;llen list;lrem list n value;ltrim list 1 2;rpoplpush list1 list2移除列表最后一個(gè)元素乞巧,將其移動(dòng)到另一個(gè)列表中;lset list n value;linsert list before/after value1 valu2
  • sadd myset value;smembers myset;sismember myset value;scard myset;srem myset value;srandmember myset n;spop myset;smove myset anotherset value;sdiff set1 set2;sinter set1 set2;sunion set1 set2
  • zadd salary 2500 zhangsan;zrangebyscore salary -inf +inf;zrevrange salary - -1;zrange salary 0 -1;zrem salary zhangsan;zcard salary;zcount salary value1 value2
  • geoadd china:city 120.16 30.24 hangzhou;geopos china:city hangzhou;geodist chinaLcity shanghai hangzhou km;georadius china:city 110 30 500 km withdist;georadiusbymember chaina:city hangzhou 500km;zrange china:city 0 -1
  • pfadd mykey a b c d e f g h;pfcount mykey;pfmerge key3 key1 key2
  • setbit sign 1 0;getbit sign 1;bitcount sign
  1. Redis事務(wù)沒(méi)有隔離級(jí)別的概念,它的單條命令保證原子性摊鸡,但是事務(wù)不保證原子性绽媒。multi開啟事務(wù)滓窍、exec執(zhí)行事務(wù)壤圃、discard放棄事務(wù)。當(dāng)redis事務(wù)中遇到了編譯型異常(例如語(yǔ)法錯(cuò)誤)時(shí)昙啄,事務(wù)中的所有命令都不能被執(zhí)行猎提;當(dāng)遇到了運(yùn)行型異常其他命令是可以正常執(zhí)行的获三。
  2. Redist通過(guò)watch對(duì)key進(jìn)行監(jiān)視加鎖,是一種樂(lè)觀鎖。當(dāng)一個(gè)線程執(zhí)行之前石窑,有另外一個(gè)線程修改了被watch的值牌芋,那這個(gè)時(shí)候就會(huì)導(dǎo)致事務(wù)執(zhí)行失敗

2021-09-22

  1. Ubuntu虛擬機(jī)配置橋接模式:
    • 編輯\rightarrow虛擬網(wǎng)絡(luò)編輯器\rightarrow更改設(shè)置\rightarrow橋接至網(wǎng)卡(自己打開電腦設(shè)置里面的網(wǎng)絡(luò)和Internet以太網(wǎng),再點(diǎn)更改適配器設(shè)置松逊,自己看網(wǎng)卡是哪個(gè)就選哪個(gè))
sudo vi /etc/netplan/01-netcfg.yaml
在這個(gè)文件中按照 yaml 的格式寫入如下內(nèi)容:

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:
      dhcp4: no
      addresses: [192.168.13.210/24] //靜態(tài)ip躺屁,前三位和主機(jī)一樣,最后一位不一樣即可
      gateway4: 192.168.13.122 //網(wǎng)關(guān)
      nameservers:
              addresses: [101.226.4.6]  //DNS

填寫完畢:wq退出
執(zhí)行netplan apply如果沒(méi)有報(bào)錯(cuò)经宏,則說(shuō)明設(shè)置成功犀暑。
  • 然后主機(jī)去ping虛擬機(jī)的ip,ping通應(yīng)該就沒(méi)啥問(wèn)題了
  1. gcc一開始的全稱是GNU C Complier烁兰,后來(lái)由于這個(gè)項(xiàng)目越來(lái)越大耐亏,就成了GNU Complier Collection,從名稱的改變就可以理解最初是只能編譯c沪斟,后來(lái)還能編譯c++和其他的語(yǔ)言了广辰。
  2. redis.conf修改了內(nèi)容不能生效解決辦法:sudo ./redis-server /opt/redis-6.2.5/redis.conf

2021-09-23

  1. github國(guó)內(nèi)鏡像網(wǎng)站:https://github.com.cnpmjs.org/
  2. neo4j匹配項(xiàng)目時(shí)對(duì)大小寫是敏感的。主之。择吊。。槽奕。
match (four:ForthGrade) where four.cateName contains 'MacBook' return four
macth (four:ForthGrade) where four.cateName contains 'macbook' return four
上面這兩個(gè)cypher查出來(lái)的東西不一樣.........
match (four:ForthGrade) optional match (four)<-[*1..4]-(n) where four.cateName contains '好想你' return n
match (four:ForthGrade)-[r:INCLUDE]->(five:FifthGrade) where four.cateName contains '好想你' with four,five order by four.cateId,five.cateId return four.cateName as lead, collect(five.cateName) as follows

2021-09-24

  1. neo4j.conf配置文件:
dbms.memory.heap.initial_size:JVM的初始堆大小
dbms.memory.heap.max_size:JVM堆的最大容量
dbms.jvm.additional:針對(duì)JVM的額外可選項(xiàng)設(shè)置
  1. Neo4j的集群中單例模式有數(shù)據(jù)丟失的風(fēng)險(xiǎn)(這不廢話嗎几睛,一臺(tái)主機(jī)壞了還能死而復(fù)生的?)粤攒;核心模式使用Raft協(xié)議保證對(duì)所有的事務(wù)復(fù)制所森,這樣做的效果就是如果核心主機(jī)中的大部分(二分之N再加一)主機(jī)已經(jīng)接收了事務(wù),那么數(shù)據(jù)就安全了夯接。如果要考慮容錯(cuò)焕济,那就得部署2F+1臺(tái)核心主機(jī),F(xiàn)為容錯(cuò)臺(tái)數(shù)盔几。
  2. 在執(zhí)行事務(wù)的過(guò)程中吼蚁,客戶端可以請(qǐng)求一個(gè)名為bookmark的標(biāo)志,這個(gè)標(biāo)志會(huì)作為下一個(gè)事務(wù)的參數(shù)问欠。這樣集群就可以保證只有處理過(guò)該客戶端事務(wù)的服務(wù)器才能去跑這個(gè)客戶的下一條事務(wù)。而不是說(shuō)同一個(gè)客戶端的不同事務(wù)是不同的服務(wù)器去執(zhí)行粒蜈,那樣就亂套了顺献。

2021-09-26

  1. /etc/profile //此文件為系統(tǒng)的每個(gè)用戶設(shè)置環(huán)境信息
    ~/.bash_profile //每個(gè)用戶都可以使用該文件的配置信息
  2. linux上安裝neo4j4.3:
  • 先安裝jdk11,解壓以后記住路徑再去~/.bash_profile里面添加環(huán)境變量,\color{red}{其實(shí)配置文件里面的注釋不能隨便解開}
export JAVA_HOME=home/jdk-11.0.12  //你自己的安裝路徑
export PATH=${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin:$PATH
  • 再解壓安裝neo4j4.3枯怖,安裝好了以后去配置文件里面把下面這行注釋解開就行,$\:
 dbms.default_listen_address=0.0.0.0
  1. 部署neo4j集群注整,部署了一天都不行,按照官網(wǎng)上安回來(lái),安回去都不行

2021-09-27

  1. 查找資料看neo4j官網(wǎng)說(shuō)是由于存儲(chǔ)ID不匹配造成的存儲(chǔ)復(fù)制失敗肿轨,建議的解決方法是先解綁(把集群狀態(tài)移除并存檔)寿冕,然后把graph.db移除,再?gòu)牧硪慌_(tái)核心服務(wù)器上恢復(fù)椒袍,然后再啟動(dòng)驼唱,待嘗試......
  2. 下午在209上導(dǎo)了三個(gè)小時(shí)數(shù)據(jù),是因?yàn)榻s束的時(shí)候沒(méi)加create關(guān)鍵字驹暑,讀csv文件時(shí)候記混了列名

2021-09-28

1.繼續(xù)嘗試部署集群
2.給前端寫接口

2021-09-29

今天把昨天要寫的接口寫完了玫恳,嗚嗚嗚,真辛苦

2021-09-30

美團(tuán)用的圖數(shù)據(jù)庫(kù)是NebulaGraph优俘,由Facebook員工葉小萌離職創(chuàng)業(yè)在19年推出京办,基于C++編寫,存儲(chǔ)引擎基于RocksDB改造帆焕。在每秒幾十萬(wàn)的導(dǎo)入速度下惭婿,會(huì)長(zhǎng)期占用機(jī)器的CPU、IO資源叶雹,一方面會(huì)對(duì)機(jī)器機(jī)器造成損耗财饥,另一方面數(shù)據(jù)導(dǎo)入過(guò)程中集群對(duì)外提供的讀性能也會(huì)變?nèi)?/strong>。針對(duì)上述兩個(gè)問(wèn)題浑娜,美團(tuán)做出了兩個(gè)優(yōu)化措施:1.在Spark集群中直接生成圖數(shù)據(jù)庫(kù)底層文件SST file2.再借助RocksDB的BulkLoad功能ingest文件到數(shù)據(jù)庫(kù)

2021-10-07

六爻解卦時(shí)看動(dòng)爻:

  • 一個(gè)動(dòng)爻:直接按動(dòng)爻的爻辭解卦即可
  • 兩個(gè)動(dòng)爻:一陰一陽(yáng)觀陰爻佑力;同陰同陽(yáng)觀上爻
  • 三個(gè)動(dòng)爻:觀中爻
  • 四個(gè)動(dòng)爻:自下而上,取第一個(gè)不動(dòng)的爻
  • 五個(gè)動(dòng)爻:看不動(dòng)的爻
  • 六個(gè)動(dòng)爻:找本宮卦的卦辭

2021-10-08

1.搭建Neo4j 4.3集群(我的三臺(tái)服務(wù)器是209,210,211):

  • 首先保證每臺(tái)服務(wù)器上都裝了jdk11筋遭,配了環(huán)境變量打颤;
  • 然后在每臺(tái)服務(wù)器上解壓neo4j 4.3,最好每臺(tái)服務(wù)器上的解壓路徑都一樣漓滔,方便操作維護(hù)编饺;
  • 其次修改每臺(tái)服務(wù)器的neo4j.conf文件,我在別的博客和官網(wǎng)上看教程响驴,那些ip配的亂七八糟的透且,就是配不好,最后把每臺(tái)服務(wù)器上的neo4j卸載重裝以后按照楓葉小哥的博客配好了豁鲤,下面的配置文件不多也不少秽誊,就改這些就行了,反正我是配好了
解開注釋
dbms.memory.heap.initial_size=512m
dbms.memory.heap.max_size=512m
解開注釋并修改
dbms.default_listen_address=203.3.234.209 //當(dāng)前服務(wù)器ip
dbms.default_advertised_address=203.3.234.209
dbms.mode=CORE
causal_clustering.minimum_core_cluster_size_at_formation=3
causal_clustering.minimum_core_cluster_size_at_runtime=3
causal_clustering.initial_discovery_members=203.3.234.209:5000,203.3.234.210:5000,203.3.234.211:5000
causal_clustering.discovery_listen_address=:5000
causal_clustering.transcation_listen_address=:6000
causal_clustering.raft_listen_address=:7000
  • 最后啟動(dòng)每臺(tái)服務(wù)器的neo4j琳骡,順序無(wú)所謂锅论,啟動(dòng)之后去瀏覽器地址欄輸入每臺(tái)服務(wù)器的ip加上7474端口訪問(wèn)即可,配置成功截圖如下:


    neo4j集群配置成功截圖.png

2021-10-09

  1. redis如果主機(jī)宕機(jī)了楣号,那slaveof no one可以讓當(dāng)前從機(jī)謀權(quán)篡位變?yōu)槔洗?/li>
  2. 哨兵配置文件:sentinel.conf:sentinel monitor 127.0.0.1 6379 1最易,后面的數(shù)字1表示如果主機(jī)掛了怒坯,就開始投票模式選舉新的主機(jī)
  3. 緩存穿透:用戶想要查詢一個(gè)數(shù)據(jù),發(fā)現(xiàn)redis數(shù)據(jù)庫(kù)沒(méi)有藻懒,于是向持久層數(shù)據(jù)庫(kù)查詢剔猿。發(fā)現(xiàn)也沒(méi)有,于是本次查詢失敗嬉荆。當(dāng)用戶很多的時(shí)候(例如\color{red}{秒殺場(chǎng)景})归敬,大面積緩存都沒(méi)有命中,于是都去請(qǐng)求了數(shù)據(jù)庫(kù)员寇,這會(huì)給持久層數(shù)據(jù)庫(kù)造成很大的壓力弄慰,此時(shí)就會(huì)出現(xiàn)緩存穿透現(xiàn)象。解決方案有布隆過(guò)濾器和緩存空對(duì)象蝶锋。前者對(duì)所有可能查詢的參數(shù)以hash形式存儲(chǔ)陆爽,在控制層先進(jìn)行校驗(yàn),不符合直接丟棄扳缕,從而避免了對(duì)底層存儲(chǔ)系統(tǒng)的壓力慌闭;后者是當(dāng)存儲(chǔ)層不命中時(shí),即使返回為空對(duì)象也將其緩存起來(lái)躯舔,同時(shí)設(shè)置一個(gè)過(guò)期時(shí)間驴剔,之后再訪問(wèn)這個(gè)數(shù)據(jù)會(huì)從緩存中獲取,保護(hù)了后端數(shù)據(jù)源粥庄。
  4. 緩存擊穿:是指一個(gè)非常熱點(diǎn)的key(例如\color{red}{微博出軌熱搜})丧失,在不停扛著大并發(fā)惜互。大并發(fā)集中對(duì)這一個(gè)點(diǎn)訪問(wèn)布讹,當(dāng)這個(gè)點(diǎn)在失效的瞬間,有大量的并發(fā)請(qǐng)求训堆,由于緩存過(guò)期描验,會(huì)同時(shí)訪問(wèn)數(shù)據(jù)庫(kù)來(lái)查詢最新數(shù)據(jù),并回寫緩存坑鱼,使數(shù)據(jù)庫(kù)壓力瞬間過(guò)大膘流。解決方案有設(shè)置熱點(diǎn)key永不過(guò)期和加互斥鎖。其中加互斥鎖是保證對(duì)于每一個(gè)key同時(shí)只有一個(gè)線程去查詢后端服務(wù)鲁沥,其他線程沒(méi)有獲得分布鎖的權(quán)限呼股,因此只需等待即可。這種方式將高并發(fā)的壓力轉(zhuǎn)移到分布式鎖画恰,對(duì)分布式鎖的考驗(yàn)很大卖怜。
  5. 緩存雪崩:是指某一個(gè)時(shí)間段內(nèi),緩存集中過(guò)期失效阐枣,redis宕機(jī)马靠。其實(shí)集中過(guò)期,倒不是非常致命蔼两,致命的是緩存服務(wù)器某個(gè)節(jié)點(diǎn)宕機(jī)或者斷網(wǎng)甩鳄。
  6. lambda的演變史:定義函數(shù)式接口\rightarrow實(shí)現(xiàn)類\rightarrow靜態(tài)內(nèi)部類\rightarrow局部?jī)?nèi)部類\rightarrow匿名內(nèi)部類\rightarrowlambda表達(dá)式

2021-10-11

  1. 上午學(xué)習(xí)java分頁(yè),原理就是用SQL的limit字段實(shí)現(xiàn)的额划,接收兩個(gè)參數(shù)妙啃,第一個(gè)是偏移量,第二個(gè)是當(dāng)前語(yǔ)句返回的記錄條數(shù)俊戳;但是Cypher的limit只接受一個(gè)參數(shù)揖赴,只能去限制一下返回記錄的大小,分頁(yè)我目前想到的是用where去限制搜索條件達(dá)到類似的分頁(yè)效果抑胎;
  2. 下午開會(huì)明確了下一步要進(jìn)行集群的路由配置燥滑,我感覺(jué)這東西不僅需要在neo4j.conf里面配,還需要在項(xiàng)目的sdn配置文件里面配阿逃;除此之外铭拧,梳理了一下自己接下來(lái)的分工:session查詢和注解查詢比較;自動(dòng)補(bǔ)全搜索策略的制定恃锉;以代碼的方式進(jìn)行定期load csv操作搀菩;之前調(diào)研報(bào)告整成word版本;學(xué)svn基本操作破托。

2021-10-12

  1. neo4j-admin unbind --database=graph.db常用于解決集群服務(wù)器中數(shù)據(jù)不一致的問(wèn)題肪跋;對(duì)于只讀的事務(wù),驅(qū)動(dòng)可以自動(dòng)路由至從機(jī)土砂;應(yīng)用層訪問(wèn)不要要判斷主節(jié)點(diǎn)州既,驅(qū)動(dòng)會(huì)自動(dòng)切換和實(shí)現(xiàn)
  2. neo4j的堆內(nèi)存建議設(shè)置為OS總內(nèi)存的30%,頁(yè)面緩存大小設(shè)置為OS總內(nèi)存的50%瘟芝,官方的建議配置命令為neo4j-admin memrec --database=graph.db
  3. neo4j數(shù)據(jù)預(yù)熱:match (n) optional match (n)-[r]->() return count(n)+count(r)
  4. 如果有確定的目標(biāo)易桃,應(yīng)該先匹配目標(biāo)再去匹配路徑
  5. 圖數(shù)據(jù)庫(kù)里盡量不要出現(xiàn)環(huán)路和雙向關(guān)系,十分影響查詢性能

2021-10-13

  1. neo4j集群模式不支持neo4j-import導(dǎo)入锌俱,因?yàn)樵撁钍窃趩喂?jié)點(diǎn)且服務(wù)停止的情況下使用晤郑。如果在集群模式下停止服務(wù)并導(dǎo)入,集群需要重建:
    如果只做一次初始化贸宏,正確步驟為:
    • 停止服務(wù)造寝,導(dǎo)入到一個(gè)單節(jié)點(diǎn)
    • 導(dǎo)入完成后啟動(dòng)服務(wù),檢查數(shù)據(jù)是否正確
    • 停止服務(wù)吭练,進(jìn)行數(shù)據(jù)備份
    • 搭建兩個(gè)新的從節(jié)點(diǎn)诫龙,將數(shù)據(jù)備份到從節(jié)點(diǎn),并進(jìn)行restore
    • 配置集群關(guān)系鲫咽,啟動(dòng)集群

如果需要經(jīng)常初始化且數(shù)據(jù)量較大签赃,建議使用單節(jié)點(diǎn)模式谷异;
如果需要經(jīng)常初始化但數(shù)據(jù)量較少,建議使用在線批量插入方式

  1. neo4j的database被stop后是處于停用狀態(tài)的锦聊,此時(shí)集群中的Raft協(xié)議的作用對(duì)象也就不會(huì)包含該database歹嘹,所以在進(jìn)行災(zāi)難恢復(fù)時(shí)要對(duì)此類狀態(tài)的數(shù)據(jù)庫(kù)單獨(dú)考慮恢復(fù)方案;
  2. 命令行連接數(shù)據(jù)庫(kù),添加角色及權(quán)限 :
./cypher-shell -a neo4j://203.3.234.209:7687 -d system -u neo4j -p Passw0rD
call dbms.security.listRoles()
call dbms.security.createUser('ejy','Passw0rD',false)
call dbms.security.addRoleToUser('reader','ejy')
call dbms.security.removeRoleFromUser('reader','ejy')

2021-10-14

  1. 學(xué)習(xí)session會(huì)話孔庭,Query注解尺上,neo4jClient客戶端三種查詢方式,結(jié)合目前查到的路由實(shí)現(xiàn)方式圆到,還是得用session會(huì)話查詢
  2. 將集群路由以讀取配置文件的方法在項(xiàng)目中進(jìn)行了代碼實(shí)現(xiàn)

2021-10-15

  1. 將新的數(shù)據(jù)導(dǎo)入到了集群中怎抛,節(jié)點(diǎn)數(shù)量為59萬(wàn),關(guān)系數(shù)量為109萬(wàn)
  2. match (n:Brand) set n.brandName = n.goodsName remove n.goodsName

2021-10-18

  1. cron表達(dá)式參數(shù)含義:
    \rightarrow\rightarrow小時(shí)\rightarrow日期\rightarrow月份\rightarrow星期\rightarrow年份(可選芽淡,留空)
    每一個(gè)域都使用數(shù)字马绝,但還可以出現(xiàn)如下特殊字符,它們的含義是:
    (1):表示匹配該域的任意值吐绵。假如在Minutes域使用, 即表示每分鐘都會(huì)觸發(fā)事件迹淌。
    (2)?:只能用在DayofMonth和DayofWeek兩個(gè)域。它也匹配域的任意值己单,但實(shí)際不會(huì)唉窃。因?yàn)镈ayofMonth和DayofWeek會(huì)相互影響。例如想在每月的20日觸發(fā)調(diào)度纹笼,不管20日到底是星期幾纹份,則只能使用如下寫法: 13 13 15 20 * ?, 其中最后一位只能用?廷痘,而不能使用蔓涧,如果使用表示不管星期幾都會(huì)觸發(fā),實(shí)際上并不是這樣笋额。
    (3)-:表示范圍元暴。例如在Minutes域使用5-20,表示從5分到20分鐘每分鐘觸發(fā)一次
    (4)/:表示起始時(shí)間開始觸發(fā)兄猩,然后每隔固定時(shí)間觸發(fā)一次茉盏。例如在Minutes域使用5/20,則意味著5分鐘觸發(fā)一次,而25枢冤,45等分別觸發(fā)一次.
    (5),:表示列出枚舉值鸠姨。例如:在Minutes域使用5,20,則意味著在5和20分每分鐘觸發(fā)一次淹真。
    (6)L:表示最后讶迁,只能出現(xiàn)在DayofWeek和DayofMonth域。如果在DayofWeek域使用5L,意味著在最后的一個(gè)星期四觸發(fā)核蘸。
    (7)W:表示有效工作日(周一到周五),只能出現(xiàn)在DayofMonth域巍糯,系統(tǒng)將在離指定日期的最近的有效工作日觸發(fā)事件永高。例如:在 DayofMonth使用5W潜叛,如果5日是星期六茁裙,則將在最近的工作日:星期五霎褐,即4日觸發(fā)窒升。如果5日是星期天确徙,則在6日(周一)觸發(fā)腮出;如果5日在星期一到星期五中的一天城侧,則就在5日觸發(fā)疆偿。另外一點(diǎn)咱筛,W的最近尋找不會(huì)跨過(guò)月份 。
    (8)LW:這兩個(gè)字符可以連用杆故,表示在某個(gè)月最后一個(gè)工作日迅箩,即最后一個(gè)星期五。
    (9)#:用于確定每個(gè)月第幾個(gè)星期幾处铛,只能出現(xiàn)在DayofMonth域饲趋。例如在4#2,表示某月的第二個(gè)星期三撤蟆。
    三奕塑、常用表達(dá)式例子
  (1)0 0 2 1 * ? *   表示在每月的1日的凌晨2點(diǎn)調(diào)整任務(wù)
 〖铱稀(2)0 15 10 ? * MON-FRI   表示周一到周五每天上午10:15執(zhí)行作
 ×渑椤(3)0 15 10 ? 6L 2002-2006   表示2002-2006年的每個(gè)月的最后一個(gè)星期五上午10:15執(zhí)行作
  (4)0 0 10,14,16 * * ?   每天上午10點(diǎn)讨衣,下午2點(diǎn)换棚,4點(diǎn) 
  (5)0 0/30 9-17 * * ?   朝九晚五工作時(shí)間內(nèi)每半小時(shí) 
 》凑颉(6)0 0 12 ? * WED    表示每個(gè)星期三中午12點(diǎn) 
 」淘椤(7)0 0 12 * * ?   每天中午12點(diǎn)觸發(fā) 
  (8)0 15 10 ? * *    每天上午10:15觸發(fā) 
 〈醪琛(9)0 15 10 * * ?     每天上午10:15觸發(fā) 
 ∠ν妗(10)0 15 10 * * ? *    每天上午10:15觸發(fā) 
  (11)0 15 10 * * ? 2005    2005年的每天上午10:15觸發(fā) 
 ×究鳌(12)0 * 14 * * ?     在每天下午2點(diǎn)到下午2:59期間的每1分鐘觸發(fā) 
 》绯印(13)0 0/5 14 * * ?    在每天下午2點(diǎn)到下午2:55期間的每5分鐘觸發(fā) 
  (14)0 0/5 14,18 * * ?     在每天下午2點(diǎn)到2:55期間和下午6點(diǎn)到6:55期間的每5分鐘觸發(fā) 
 “邕丁(15)0 0-5 14 * * ?    在每天下午2點(diǎn)到下午2:05期間的每1分鐘觸發(fā) 
 $拖摇(16)0 10,44 14 ? 3 WED    每年三月的星期三的下午2:10和2:44觸發(fā) 
  (17)0 15 10 ? * MON-FRI    周一至周五的上午10:15觸發(fā) 
 〕勾拧(18)0 15 10 15 * ?    每月15日上午10:15觸發(fā) 
 “濉(19)0 15 10 L * ?    每月最后一日的上午10:15觸發(fā) 
 ±晖薄(20)0 15 10 ? * 6L    每月的最后一個(gè)星期五上午10:15觸發(fā) 
  (21)0 15 10 ? * 6L 2002-2005   2002年至2005年的每月的最后一個(gè)星期五上午10:15觸發(fā) 
 ±厶帷(22)0 15 10 ? * 6#3   每月的第三個(gè)星期五上午10:15觸發(fā)
  1. @Scheduled使用方法
    先在啟動(dòng)類上面添加@EnableScheduling
    然后在方法上面添加@Scheduled(cron = "30 * * * * ? ")

2021-10-19

  1. 今天商討搜索策略尘喝,目前領(lǐng)導(dǎo)要求的是把每一個(gè)四類商品的全稱進(jìn)行分詞然后精簡(jiǎn)作為屬性添加存儲(chǔ)到該節(jié)點(diǎn)中。我想的是直接用query模糊匹配四類節(jié)點(diǎn)斋陪,然后把查出來(lái)的所有g(shù)oodsName進(jìn)行分類映射朽褪,然后把分類結(jié)果作為自動(dòng)補(bǔ)全的返回值。

2021-10-20

  1. 按照昨天的思路寫了一個(gè)自動(dòng)補(bǔ)全的接口无虚,先分詞然后模糊匹配

2021-10-21

  1. 今天白天看了京東電商搜索的邏輯缔赠,晚上和雷領(lǐng)搞ltp4j,沒(méi)搞出來(lái)

2021-10-22

  1. Qt是基于C++的跨平臺(tái)應(yīng)用程序開發(fā)框架友题,有著獨(dú)特的信號(hào)和槽機(jī)制嗤堰。專注但不局限于圖形用戶界面的開發(fā),也可以進(jìn)行系統(tǒng)調(diào)用度宦、網(wǎng)絡(luò)編程踢匣、數(shù)據(jù)庫(kù)的開發(fā)。
  2. Qt中有兩種編譯方式戈抄,分別為MSVC和MinGW离唬。其中MSVC是微軟的C++編譯器,微軟的親兒子呛凶;MingGW是GNU從Linux移植到Windows上的產(chǎn)品男娄。兩者把源碼編譯打包成exe文件的方式不同,體驗(yàn)上來(lái)講MinGW快一丟丟漾稀,但是MSVC更穩(wěn)模闲。前者不想鉆研的話直接下載VS2015勾選Visual C++安裝即可,后者(1)去官網(wǎng)下載安裝程序或者(2)壓縮包解壓再配下環(huán)境變量都可以崭捍。
  3. ltp4j編譯過(guò)程(windows版本):
  • 確認(rèn)已安裝了maven和git以及msvc尸折,前兩者確認(rèn)命令mvn -v和git --version
  • git clone https://github.com/HIT-SCIR/ltp4j
  • 進(jìn)入到ltp4j文件夾下git submodule init
  • git submodule update
  • mvn -Dmaven.test.skip=true
    在下面的文件夾能找到一下文件就說(shuō)明編譯成功
    target/ltp4j-0.1.0-SNAPSHOT.jar
    target/nar/ltp4j-0.1.0-SNAPSHOT-amd64-Windows-msvc-jni/lib/amd64-Windows-msvc/jni/ltp4j-0.1.0-SNAPSHOT.dll。
  1. ltp4j使用過(guò)程:
  • 先把jar包打到maven庫(kù)里面:mvn install:install-file -Dfile=D:\LTP\ltp4j\target\ltp4j-0.1.0-SNAPSHOT.jar -DgroupId=edu.hit.ir.ltp4j -DartifactId=ltp4j -Dversion=0.1.0-SNAPSHOT -Dpackaging=jar
  • 然后因?yàn)閘tp是C++寫的殷蛇,這里只是整合成了java的native方法实夹,不指定library_path的話會(huì)找不到動(dòng)態(tài)鏈接庫(kù),接著會(huì)報(bào)java.lang.UnsatisfiedLinkError的錯(cuò)誤粒梦,解決辦法是直接把生成的dll文件放到j(luò)dk下面的bin目錄就行亮航,(根本原因就是在類路徑里面找不到ltp4j這個(gè)庫(kù)嘛,那加進(jìn)去就行了)
  • 再把
<dependency>
    <groupId>edu.hit.ir.ltp4j</groupId>
    <artifactId>ltp4j</artifactId>
    <version>0.1.0-SNAPSHOT</version>
</dependency>

寫到pom文件里去

  • 模型文件在ltp4j文件夾下面的ltp_data中有匀们,寫代碼的時(shí)候?qū)懡^對(duì)路徑和相對(duì)路徑都可以缴淋。基本用法見文檔:https://ltp4j.readthedocs.io/en/neoltp4j/
  1. JNI(java native interface)是java和C與C++之間進(jìn)行通信的橋梁。native方法就是JNI實(shí)現(xiàn)的(此實(shí)現(xiàn)非是java中的實(shí)現(xiàn))
  2. dll是動(dòng)態(tài)鏈接庫(kù)文件重抖,是一種不可執(zhí)行的二進(jìn)制程序文件露氮,允許程序共享執(zhí)行特殊任務(wù)所必須的代碼和其他資源。利于節(jié)省內(nèi)存钟沛,資源共享畔规,解決平臺(tái)差異。

2021-10-25

  1. 阿里在經(jīng)歷了“檢索時(shí)代\rightarrow大規(guī)模機(jī)器學(xué)習(xí)時(shí)代\rightarrow大規(guī)模實(shí)時(shí)在線學(xué)習(xí)時(shí)代\rightarrow深度學(xué)習(xí)與智能決策時(shí)代”后恨统,在18年就已形成了如下的搜索算法體系:
    阿里搜索算法排序體系.jpg

    現(xiàn)在的方向是基于電商認(rèn)知圖譜的在線圖計(jì)算與推理引擎叁扫。有了上述架構(gòu),在全域的搜索推薦導(dǎo)購(gòu)畜埋、智能交互和內(nèi)容生成等領(lǐng)域上陌兑,都會(huì)產(chǎn)生各種微妙的反應(yīng)。并且在認(rèn)知應(yīng)用過(guò)程中由捎,根據(jù)用戶對(duì)認(rèn)知推理結(jié)果的反饋,系統(tǒng)持續(xù)迭代的認(rèn)知圖譜以及推理算法饿凛,從而提升認(rèn)知計(jì)算能力狞玛。
  2. neo4j匹配最短路徑:
match (m:Person {name:'zhangsan'}),(n:Person {name:'李四'}),p=shortestPath((m)-[*]-(n))
where none(r in relationships(p) where type(r)='FATHER') return p

2021-10-26

  1. 冪等不修改服務(wù)器狀態(tài)的用GET,冪等修改服務(wù)器狀態(tài)的用PUT涧窒,不冪等修改服務(wù)器狀態(tài)的用POST
  2. 靜態(tài)代理模式中心肪,真實(shí)對(duì)象和代理對(duì)象都需要實(shí)現(xiàn)同一個(gè)接口,代理對(duì)象要代理真實(shí)角色纠吴。好處是代理對(duì)象可以實(shí)現(xiàn)真實(shí)對(duì)象做不了的事情硬鞍,真實(shí)對(duì)象可以專注自己的事情

2021-10-27

  1. 在實(shí)際的neo4j項(xiàng)目開發(fā)中,查詢時(shí)不要頻繁實(shí)例化ExcutionEngine戴已,以便之前的查詢可以存到緩存中去固该。
  2. 想用neo4j的apoc庫(kù)時(shí),可以把NEO4J_HOME/labs目錄下的jar文件移動(dòng)到NEO4J_HOME/plugins目錄下糖儡,然后重啟neo4j
  3. cypher或者sql每次編譯后都會(huì)得到一棵語(yǔ)法樹,neo4j有兩級(jí)緩存伐坏,分別為string cache和AST cache。cache首先根據(jù)語(yǔ)句的string hash判斷握联,所以一樣的語(yǔ)句桦沉,但是大小寫或者空白符不一樣對(duì)于緩存來(lái)說(shuō)都是不相同的。如果在string hash中沒(méi)找到緩存金闽,那么會(huì)將查詢正規(guī)化纯露,得到其語(yǔ)法樹并進(jìn)行緩存,AST cache不區(qū)分大小寫代芜。所以在查詢中盡量使用參數(shù)埠褪,不要使用字面值,可以提高一個(gè)執(zhí)行計(jì)劃的復(fù)用次數(shù)。
  4. 要避免中間的結(jié)果集過(guò)大组橄,所以要盡早distinct荞膘,盡早limit,用collect減少結(jié)果的行數(shù)玉工,在正確的地方使用order by
  5. 多個(gè)unwind會(huì)導(dǎo)致笛卡爾積的產(chǎn)生羽资,在match中也要盡量避免使用多個(gè)模式
#  1. 笛卡爾積 80000 ms w/ ~900 players, ~40 teams, ~1200 games
MATCH (pl:Player),(t:Team),(g:Game)
RETURN COUNT(DISTINCT pl),
COUNT(DISTINCT t),
COUNT(DISTINCT g)

# 2. 8ms w/~900 players, ~40 teams, ~1200 games
MATCH (pl:Player)
WITH COUNT(pl) as players
MATCH (t:Team)
WITH COUNT(t) as teams, players
MATCH (g:Game)
RETURN COUNT(g) as games, teams, players

2021-10-28

  1. 顯式地指定索引的方式,就是使用using從句:match (n:Person) using index n:Person(id) where n.name='zhangsan' return n或者match (n:Person) using scan n:Person where n.name='zhangsan' return n
  2. 老項(xiàng)目中查詢企業(yè)間最短路徑時(shí)遵班,未綁定關(guān)系的跳數(shù)上限屠升,路徑方向也未指定
  3. neo4j相關(guān)函數(shù):https://www.cnblogs.com/jpfss/p/11464802.html

2021-10-29

  1. 代碼導(dǎo)入數(shù)據(jù)問(wèn)題排查發(fā)現(xiàn),測(cè)試數(shù)據(jù)的csv文件編碼有問(wèn)題狭郑,修改后重新嘗試成功

2021-11-01

  1. 寫圖數(shù)據(jù)庫(kù)批量導(dǎo)入的定時(shí)函數(shù)腹暖,但是每次刪除所有節(jié)點(diǎn)后存儲(chǔ)空間并不會(huì)釋放,需要比對(duì)純凈版neo4j和導(dǎo)入數(shù)據(jù)后的neo4j相關(guān)文件翰萨,確定每次更新數(shù)據(jù)后是否能直接刪除neo4j相關(guān)文件來(lái)釋放硬盤空間

2021-11-02

  1. 修改報(bào)告
  2. 寫按品牌查詢脏答、三類節(jié)點(diǎn)查詢、三類節(jié)點(diǎn)和屬性同時(shí)查詢的接口

2021-11-03

  1. 變量和引用變量存放在棧中亩鬼,實(shí)例化的對(duì)象存放在堆中V掣妗!vǚ妗;萍ā!
  2. 下面的代碼說(shuō)明了:
  • 字符串對(duì)象與null的值不相等玷过,且內(nèi)存地址也不相等爽丹;
  • 空字符串對(duì)象與null的值不相等,且內(nèi)存地址也不相等辛蚊;
  • new String()創(chuàng)建一個(gè)字符串對(duì)象的默認(rèn)值為"" (String類型成員變量的初始值為null)
    判斷字符串為空的經(jīng)典方法是if(str == null || str.length() == 0) { balabala... }
public class String_Demo01 {
    public static void main(String[] args) {        
        String str1 = new String() ;
        String str2 = null ;
        String str3 = "" ;
        System.out.println(str1==str2);                //內(nèi)存地址的比較粤蝎,返回false
        System.out.println(str1.equals(str2));         //值的比較,返回false
        System.out.println(str2==str3);                //內(nèi)存地址的比較嚼隘,返回false
        System.out.println(str3.equals(str2));         //值的比較诽里,返回false
        System.out.println(str1==str3);                //內(nèi)存地址的比較,返回false
        System.out.println(str1.equals(str3));         //值的比較飞蛹,返回true
    }
}
  1. 寫了randomQuery和recommend兩個(gè)接口

2021-11-04

  1. IDEA導(dǎo)入新項(xiàng)目的時(shí)候得去maven tab里面點(diǎn)一下+谤狡,再勾選一下新項(xiàng)目的pom.xml文件
  2. 和隔壁組的同事請(qǐng)教他關(guān)于自動(dòng)補(bǔ)全的實(shí)現(xiàn)方案:完全是按統(tǒng)計(jì)的方法進(jìn)行計(jì)算,直接從電商平臺(tái)的商品完整標(biāo)題著手卧檐,即目前的電商平臺(tái)有九萬(wàn)多個(gè)商品標(biāo)題墓懂,這些標(biāo)題由3000多個(gè)不同的字符組成。這三千多個(gè)不同的字符組合成了19萬(wàn)個(gè)不同的常用詞條(由分詞后統(tǒng)計(jì)得到)霉囚,然后通過(guò)for循環(huán)統(tǒng)計(jì)不同詞條在不同標(biāo)題中的多種距離(該距離是由完整的標(biāo)題分詞后在列表中的下標(biāo)衡量的)捕仔,最后做一個(gè)歸一化(我自己猜的)作為兩個(gè)詞條之間的距離。除了距離以外還有出現(xiàn)頻次等其他指標(biāo),都會(huì)分配不同的權(quán)重綜合考慮榜跌。統(tǒng)計(jì)算法遍歷過(guò)所有的商品標(biāo)題后闪唆,會(huì)生成一個(gè)哈希字典,字典的key是詞條钓葫,value是補(bǔ)全后的詞條悄蕾。舉例來(lái)說(shuō),{"自":"自行車"}础浮、{"自":"自嗨鍋"}帆调、{"自":"自然堂"}、{"自行車":"自行車腳蹬"}豆同、{"自嗨鍋":"自嗨鍋米飯"}番刊、{"自然堂":"自然堂面膜"}等等都可能是該字典中的鍵值對(duì)。

2021-11-05

  1. 寫代碼注釋,提交SVN
  2. all(x in nodes(p) where single(y in nodes(p) where y = x))

2021-11-08

  1. 統(tǒng)計(jì)圖譜中度在一定范圍內(nèi)的節(jié)點(diǎn):
match (n:Enterprise) with size((n)--()) as degree
where degree <= 3 return n.name,degree order by degree desc limit 3
  1. 企業(yè)圖譜中單獨(dú)查詢上三層得到的重復(fù)實(shí)體總個(gè)數(shù)為4072影锈,一次性查詢上三層和下三層得到的重復(fù)實(shí)體總個(gè)數(shù)為36232芹务;目前分析寫到一條cypher中時(shí)也得拆開寫,一段一段地寫鸭廷,不能直接把上三層和下三層放到一條路徑中查詢

2021-11-09

  1. 將查詢企業(yè)節(jié)點(diǎn)的cypher合并為一條

2021-11-10

  1. 把五條查詢縮減到三條锄禽,結(jié)果尼瑪優(yōu)化后的接口比之前的耗時(shí)還長(zhǎng),我吐了靴姿。。磁滚。不過(guò)優(yōu)化的接口里面有去重的操作
  2. 寫了好幾次終于比之前的快一秒了(其實(shí)沒(méi)有一秒佛吓,只是快一丟丟一丟丟)。垂攘。维雇。。我又吐了啊
match p=()-[]->(e:Enterprise {name:{name}})
match q=(f:Enterprise {name:{name}})-[]->()
unwind relationships(p)+relationships(q) as rel with collect(distinct rel) as link return link

2021-11-11

  1. 用session會(huì)話的方式重寫查詢接口晒他,但是死活拿不出來(lái)值
  2. 谷歌了tabnine網(wǎng)站吱型,里面有相關(guān)示例,正在閱讀理解中......

2021-11-12

  1. 今天把節(jié)點(diǎn)的相關(guān)信息都取出來(lái)了陨仅,正在封裝中......
List<Record> session.run("match (m)-[r]->(e:Enterprise {name:$name}) return m",params).list();

list.forEach(record -> {
    long id = record.get("m").asNode().id();

    StringBuilder type = new StringBuilder();
    Iterator<String> types = record.get("m").asNode().labels().iterator();
    while(types.hasNext()) {
        type = new StringBuilder(types.next());
    }
    
    Map<String, Object> = properties_map = new HashMap<>();
    Map<String, Object> property_map = record.get("m").asNode().asMap();
    Set<Map.Entry<String, Object>> entrySet = property_map.entrySet();
    for(Map.Entry<String, Object> entry:entrySet) {
        properties_map.put(entry.getKey().toString(), entry.getValue());
    }
})

2021-11-15

  1. 修改知識(shí)圖譜挑戰(zhàn)報(bào)告
  2. 有些循環(huán)取值的操作實(shí)例化變量這行代碼還是得放在循環(huán)體里津滞,放在外面的話是不會(huì)實(shí)時(shí)更新的,放在外面初始化之后值是不會(huì)變的

2021-11-16

  1. 修改知識(shí)圖譜基礎(chǔ)能力評(píng)估報(bào)告
  2. 取出了關(guān)系的值灼伤,待封裝......

2021-11-17

  1. 優(yōu)化接口1.0版本完成触徐,數(shù)據(jù)查詢和處理時(shí)間均大幅減少

2021-11-18

  1. 在存儲(chǔ)過(guò)程中動(dòng)態(tài)構(gòu)建sql,采用預(yù)編譯的方式防御sql注入
  2. 修改完善周一和周二的兩個(gè)報(bào)告

2021-11-19

  1. 閱讀銀行數(shù)字化白皮書狐赡,寫產(chǎn)業(yè)化應(yīng)用PPT

2021-11-22

  1. 反欺詐圖譜中應(yīng)該包含的實(shí)體有:IP地址撞鹉、經(jīng)緯度、設(shè)備指紋、賬戶鸟雏、聯(lián)系人享郊、逾期黑名單等;關(guān)系包括: 從屬關(guān)系孝鹊、緊急聯(lián)系人炊琉、互通電話、同一網(wǎng)絡(luò)等等
  2. 寫ppt的銀行數(shù)字化轉(zhuǎn)型背景

2021-11-23

  1. 寫ppt的數(shù)字化轉(zhuǎn)型方向惶室,知識(shí)圖譜能力温自,賦能金融部分

2021-11-24

  1. 修改PPT

2021-11-25

  1. 導(dǎo)入新的電商數(shù)據(jù),數(shù)據(jù)有問(wèn)題皇钞,處理中悼泌。。夹界。
  2. neo4j中的checkpoint是指將掛起的頁(yè)面更新從緩存中刷新到存儲(chǔ)文件的過(guò)程馆里;pruning是指刪除那些對(duì)于恢復(fù)任務(wù)來(lái)說(shuō)沒(méi)有存在必要的事務(wù)日志。個(gè)人理解只有完成了checkpoint操作可柿,才會(huì)進(jìn)行pruning操作

2021-11-26

  1. 電商新數(shù)據(jù)全部導(dǎo)入
  2. 調(diào)研Nebula Graph

2021-11-29

  1. 修改PPT鸠踪,設(shè)計(jì)反欺詐圖譜結(jié)構(gòu)

2021-11-30

1.設(shè)計(jì)風(fēng)控圖譜結(jié)構(gòu),畫圖
2.閱讀批處理代碼
3.做金融知識(shí)圖譜平臺(tái)PPT

2021-12-01

  1. 修改圖譜平臺(tái)PPT
  2. 設(shè)計(jì)風(fēng)控圖譜的實(shí)體類型及相關(guān)屬性复斥;關(guān)系的類型及相關(guān)屬性邻眷;統(tǒng)計(jì)部分實(shí)體個(gè)數(shù)

2021-12-02

  1. 查詢同名同性別的學(xué)生,并返回?cái)?shù)量:select s_name,s_sex,count(s_name) from student group by s_name,s_sex having count(s_name)>1;
    查詢不同課程成績(jī)相同的學(xué)生的學(xué)生編號(hào)胸遇、課程編號(hào)村缸、學(xué)生成績(jī):select sc1.* from score sc1 ,score sc2 where sc1.s_id=sc2.s_id and sc1.score=sc2.score and sc1.c_id<>sc2.c_id group by sc1.s_id, sc1.c_id;
    查詢每門課程成績(jī)最好的前兩名:select * from score sc1 where (select count(*) from score sc2 where sc1.c_id = sc2.c_id and sc1.score <= sc2.score) <3 order by sc1.c_id , sc1.score desc;
  2. 寫反欺詐項(xiàng)目方案
  3. 倒入反欺詐圖譜的三類節(jié)點(diǎn)

2021-12-03

  1. 導(dǎo)入反欺詐圖譜的關(guān)系
  2. 重畫PPT

2021-12-06

1.查找反欺詐圖譜的相關(guān)論文
2.畫反欺詐的圖

2021-12-07

  1. 掃碼登陸實(shí)現(xiàn)原理:
  • 訪問(wèn)PC端二維碼生成頁(yè)面,PC端請(qǐng)求服務(wù)端獲取二維碼ID
  • 服務(wù)端生成相應(yīng)的二維碼ID痢虹,設(shè)置二維碼的過(guò)期時(shí)間被去,狀態(tài)等。
  • PC獲取二維碼ID奖唯,生成相應(yīng)的二維碼惨缆。
  • 手機(jī)端掃描二維碼,獲取二維碼ID丰捷。
  • 手機(jī)端將手機(jī)端token和二維碼ID發(fā)送給服務(wù)端坯墨,確認(rèn)登錄。
  • 服務(wù)端校驗(yàn)手機(jī)端token病往,根據(jù)手機(jī)端token和二維碼ID生成PC端token
  • PC端通過(guò)輪詢方式請(qǐng)求服務(wù)端畅蹂,通過(guò)二維碼ID獲取二維碼狀態(tài),如果已成功荣恐,返回PC token液斜,登錄成功累贤。


    掃碼登陸實(shí)現(xiàn)原理.png
  1. neo4j導(dǎo)入方法比較.png

    查找load csv的遠(yuǎn)程導(dǎo)入方法;學(xué)習(xí)neo4j-admin import命令
    movie.csv:
    movieId:ID,title,year:int,:LABEL
    tt0133093,"The Matrix",1999,Movie
    tt0234215,"The Matrix Reloaded",2003,Movie;Sequel
    tt0242653,"The Matrix Revolutions",2003,Movie;Sequel
    actors.csv:
    personId:ID,name,:LABEL
    keanu,"Keanu Reeves",Actor
    laurence,"Laurence Fishburne",Actor
    carrieanne,"Carrie-Anne Moss",Actor
    roles.csv:
    :START_ID,role,:END_ID,:TYPE
    keanu,"Neo",tt0133093,ACTED_IN
    keanu,"Neo",tt0234215,ACTED_IN
    keanu,"Neo",tt0242653,ACTED_IN
    laurence,"Morpheus",tt0133093,ACTED_IN
    laurence,"Morpheus",tt0234215,ACTED_IN
    laurence,"Morpheus",tt0242653,ACTED_IN
    carrieanne,"Trinity",tt0133093,ACTED_IN
    carrieanne,"Trinity",tt0234215,ACTED_IN
    carrieanne,"Trinity",tt0242653,ACTED_IN
    bin/neo4j-admin import --database=neo4j --nodes=import/movies.csv --nodes=import/actors.csv --relationships=import/roles.csv
    相關(guān)資料博客:https://cloud.tencent.com/developer/article/1694378?from=article.detail.1387710

2021-12-08

寫自動(dòng)讀取csv各類文件數(shù)量的工具類
File file = new File(this.getClass().getRecourse("/").getFile());

2021-12-09

  1. 編寫清空并重新導(dǎo)入電商圖譜的定時(shí)函數(shù)
  2. linux下啟動(dòng)tomcat報(bào)錯(cuò)少漆,使用文件/目錄權(quán)限設(shè)置命令chmod修改后即可臼膏,如下:
  • 先進(jìn)入tomcat的bin目錄下:比如tomcat是apache-tomcat-6.0.48,則先進(jìn)入cd apache-tomcat-6.0.48/bin
  • 然后用命令chmod 修改一下bin目錄下的.sh權(quán)限就可以了
    chmod u+x *.sh
    u 這里指文件所有者
    +x 添加可執(zhí)行權(quán)限
    *.sh表示所有的.sh結(jié)尾的文件

2021-12-10

  1. tomcat下的bin/catalina.sh里面的JAVA_OPT這一項(xiàng)可以添加一些對(duì)jvm的配置監(jiān)控之類的操作
  2. firewall-cmd --zone=public --add-port=3690/tcp --permanent,提示FirewallD is not running錯(cuò)誤,則說(shuō)明防火墻未開啟;
    systemctl status firewalld,查看firewalld狀態(tài)示损,發(fā)現(xiàn)當(dāng)前是Active: inactive (dead)狀態(tài)渗磅,即防火墻未開啟;
    systemctl start firewalld,開啟防火墻检访,沒(méi)有任何提示即開啟成功;
    systemctl status firewalld,查看firewalld狀態(tài)始鱼,顯示running即已開啟了;
    systemctl stop firewalld,這條指令來(lái)關(guān)閉該功能脆贵;
    先查看防火墻開放端口列表對(duì)于Centos7系統(tǒng) firewall-cmd --zone=public --list-ports
    firewall-cmd --zone=public --add-port=8080/tcp --permanent重新加載防火墻firewall-cmd --reload
  3. 如何訪問(wèn)存在服務(wù)器的圖片或者視屏等靜態(tài)資源:

    在tomcat /conf/server.xml 添加
    瀏覽器訪問(wèn)服務(wù)器靜態(tài)資源.png
  4. 重新構(gòu)造推薦接口用于前端展示的查詢cypher

2021-12-13

  1. 編寫推薦接口用于前端展示的recommendForShow接口
  2. 測(cè)試代碼遠(yuǎn)程導(dǎo)入的可行性医清,結(jié)果可行

2021-12-14

  1. 導(dǎo)入部分反欺詐數(shù)據(jù)到neo4j,導(dǎo)入風(fēng)控轉(zhuǎn)賬記錄時(shí)出現(xiàn)了缺失數(shù)據(jù)的情況
    using periodic commit 10000 load csv with headers from 'file:///xxx.csv as line match (m:Label {labelId:line.fromId}) match (n:Label {labelId:line.toId}) merge (m)-[r:INCLUDE]->(n) on create set r.amount = line.amount'
    這種插入方式是會(huì)更新覆蓋同一條關(guān)系信息的......所以如果要往兩個(gè)節(jié)點(diǎn)之間插入多條同一類型的關(guān)系時(shí)卖氨,直接create (m)-[r:INCLUDE {amount:line.amount}]->(n)就行sad

2021-12-15

  1. 編寫導(dǎo)入交易流水的接口函數(shù)会烙,正在導(dǎo)入中,預(yù)計(jì)今天晚上可以導(dǎo)入完成......

2021-12-16

  1. 按照新的推薦規(guī)則編寫cypher,練習(xí)動(dòng)態(tài)規(guī)劃算法

2021-12-17

  1. 編寫同品類規(guī)則的推薦接口筒捺,經(jīng)驗(yàn)是要匹配路徑的時(shí)候要一個(gè)label一個(gè)label地去匹配柏腻,千萬(wàn)別直接一股腦的在一條路徑上匹配:
match (o:Essence)-[:ESSENCE_OF]->(n:ForthGrade) where n.goodsId = $goodsId with o as essence
optional match (m:ThirdGrade)-[:COTAIN]->(essence) with m as third
optional match p=(third)-[c:CONTAIN]->(essence)-[e:ESSENCE_OF]->(goods:ForthGrade)<-[a:AGENT]-(brand:Brand) where goods.goodsId <> $goodsId
return third.cateName as cate_name, third.cateId as cate_id, id(c) as contain_edge, 
essence.essenceName as essence_name, essence.essenceId as essence_id, id(e) as essence_edge, 
brand.brandName as brand_name, brand.brandId as brand_id, id(a) as agent_edge, 
goods.goodsName as goods_name, goods.goodsId as goods_id order by goods.saleVolume limit 8

2021-12-20

  1. 推薦接口中新增了直接匹配三級(jí)節(jié)點(diǎn)的查詢規(guī)則,修改了返回?cái)?shù)據(jù)的內(nèi)容格式
  2. 查找可信執(zhí)行環(huán)境的相關(guān)資料

2021-12-21

  1. 撰寫TEE報(bào)告中的發(fā)展歷史與實(shí)現(xiàn)形態(tài)部分
  2. 將標(biāo)注完成的本質(zhì)節(jié)點(diǎn)導(dǎo)入neo4j系吭,修改了接口中的cypher(原接口的cypher查詢得到的是同一三級(jí)節(jié)點(diǎn)下不同3.5級(jí)節(jié)點(diǎn)下的商品五嫂,然后刪除了第二行以后就能查到同一三級(jí)節(jié)點(diǎn)下同一3.5級(jí)節(jié)點(diǎn)下的商品了,醉了......合著中間匹配一次別的label節(jié)點(diǎn)上一次匹配到的label節(jié)點(diǎn)就作廢了

2021-12-22

  1. 修改推薦展示接口的bug
  2. 完成TEE報(bào)告中的實(shí)現(xiàn)形態(tài)部分

2021-12-23

  1. 了解區(qū)塊鏈預(yù)言機(jī),查找整理現(xiàn)有預(yù)言機(jī)種類相關(guān)資料肯尺,完成報(bào)告相應(yīng)部分
  2. 導(dǎo)入最新的電商數(shù)據(jù)到neo4j集群

2021-12-24

  1. 修改推薦接口中三級(jí)節(jié)點(diǎn)和三點(diǎn)五級(jí)節(jié)點(diǎn)同名導(dǎo)致的節(jié)點(diǎn)列表數(shù)據(jù)不全的問(wèn)題
  2. 添加代碼注釋
  3. volatile修飾的成員變量在每次被線程訪問(wèn)時(shí)贫导,都強(qiáng)迫從共享內(nèi)存中重新讀取該變量的值。而且當(dāng)該成員變量的值發(fā)生變化時(shí)蟆盹,會(huì)強(qiáng)迫線程將變化后的值回寫到共享內(nèi)存中去。

2021-12-27

  1. 閱讀大數(shù)據(jù)實(shí)時(shí)處理框架方案:其中數(shù)據(jù)采集端使用flume闺金,緩沖緩存用Kafka逾滥,實(shí)時(shí)計(jì)算用Spark,存儲(chǔ)用ES败匹。騰訊的圖數(shù)據(jù)庫(kù)應(yīng)用實(shí)踐中自研了EasyGraph+Angel-Graph.


    圖計(jì)算發(fā)展歷程.jpg
  2. 傳統(tǒng)的MapReduce任務(wù)假設(shè)數(shù)據(jù)之間的聯(lián)系較弱寨昙,使得數(shù)據(jù)的劃分和并行計(jì)算較為容易。但是對(duì)圖而言掀亩,數(shù)據(jù)之間的耦合性較強(qiáng)舔哪,往往需要先對(duì)圖進(jìn)行劃分,不同的劃分方式對(duì)計(jì)算效率影響較大槽棍。MapReduce的粗粒度劃分會(huì)導(dǎo)致負(fù)載計(jì)算不均衡等問(wèn)題捉蚤,最終導(dǎo)致圖的計(jì)算效率較低抬驴,所以2010年Google提出Pregel分布式圖計(jì)算框架,并提出了以頂點(diǎn)為中心的編程思想:Think like a vertex 像頂點(diǎn)一樣思考缆巧,每個(gè)點(diǎn)都可以接收鄰居發(fā)送的信息布持,并結(jié)合自身的屬性和更新函數(shù)進(jìn)行更新操作,并把更新后的信息沿著鄰邊發(fā)送給鄰居陕悬,通過(guò)不斷迭代完成整個(gè)計(jì)算過(guò)程题暖。在做計(jì)算時(shí)站在頂點(diǎn)的角度思考整個(gè)圖計(jì)算過(guò)程,可以靈活表達(dá)多種圖算法捉超,提升開發(fā)效率胧卤。

2021-12-28

  1. 把推薦接口中的所有節(jié)點(diǎn)和關(guān)系全部進(jìn)行了去重操作
  2. Chainlink開發(fā)準(zhǔn)備:
  • 安裝Go1.17,并將go路徑添加到環(huán)境變量中
  • 安裝Nodejs和yarn
  • 安裝Postgres (>= 11.x)拼岳,連接方式配置為SSL
  • 確認(rèn)已安裝了Python 3枝誊,因?yàn)橐幾gSolidity合約
  • 下載Chainlink:git clone https://github.com/smartcontractkit/chainlink && cd chainlink
  • 構(gòu)建并安裝Chainlink:make install(編譯安裝的時(shí)候如果碰到y(tǒng)arn包的報(bào)錯(cuò),就yarn install一下)
  • ......

2021-12-29

  1. 在移植老項(xiàng)目到新項(xiàng)目過(guò)程中遇到了nested exception is org.springframework.data.mapping.MappingException:Couldn't find PersistentEntity for type class jva.lang.Object!是因?yàn)槔^承Neo4jRepository的時(shí)候沒(méi)有完成圖譜中實(shí)體的映射過(guò)程

2021-12-30

1.完成了Neo4jRepository的Enterprise實(shí)體映射過(guò)程裂问,但是老項(xiàng)目的neo4j是3.5版本的侧啼,不支持多庫(kù),而新項(xiàng)目是4.3版本的堪簿,目前能想到的解決辦法是把老項(xiàng)目的企業(yè)圖譜遷移到4.3的neo4j集群上痊乾,放到默認(rèn)的neo4j庫(kù)里面,然后把原來(lái)neo4j庫(kù)里面的電商圖譜拿出來(lái)椭更,再建一個(gè)電商庫(kù)放進(jìn)去

2021-12-31

  1. 重寫接口返回內(nèi)容的實(shí)現(xiàn)方式

2022-01-04

1.以枚舉類的方式實(shí)現(xiàn)前端數(shù)據(jù)的返回
2.初步驗(yàn)證了SDN6.0版本能夠以繼承Neo4jRepository的方式進(jìn)行查詢?cè)鰟h改查(一些注解進(jìn)行了細(xì)微的改動(dòng))

  1. 調(diào)研圖表示學(xué)習(xí)的相關(guān)算法和工業(yè)案例

2022-01-05

1.數(shù)禾科技在進(jìn)行金融圖譜反欺詐的業(yè)務(wù)探索時(shí)哪审,觀察建模樣本,發(fā)現(xiàn)在該關(guān)聯(lián)關(guān)系網(wǎng)絡(luò)中虑瀑,出現(xiàn)金融領(lǐng)域比較常見的一個(gè)情況:有特征的節(jié)點(diǎn)過(guò)于稀疏湿滓。在此情況下建模,會(huì)使得模型在訓(xùn)練過(guò)程中難以收斂舌狗。于是對(duì)單個(gè)沒(méi)有特征的節(jié)點(diǎn)做了剪枝叽奥。考慮到關(guān)系數(shù)據(jù)本身的稀疏性問(wèn)題以及圖結(jié)構(gòu)的特殊性痛侍,采用過(guò)采樣和欠采樣的方式朝氓,會(huì)導(dǎo)致圖結(jié)構(gòu)發(fā)生改變。因此主届,采取相對(duì)簡(jiǎn)單暴力的在loss上添加weight的方式使模型可以正常學(xué)習(xí)收斂赵哲。模型采用GraphSage+GAT的模式構(gòu)成主要的模型結(jié)構(gòu)。大概分為以下幾步:

  • 通過(guò)GraphSage的方式對(duì)目標(biāo)節(jié)點(diǎn)進(jìn)行多層鄰居采樣君丁,得到子圖枫夺;
  • 在采樣的子圖上使用GAT網(wǎng)絡(luò)作為聚合方法,對(duì)鄰居節(jié)點(diǎn)進(jìn)行多層聚合绘闷;
  • 最終得到目標(biāo)節(jié)點(diǎn)embedding后送入FNN網(wǎng)絡(luò)橡庞,輸出最終結(jié)果较坛。
  1. 學(xué)習(xí)使用DGL工具庫(kù)中的GCN訓(xùn)練圖結(jié)構(gòu)數(shù)據(jù)

2022-01-06

  1. 將行內(nèi)微服務(wù)依賴關(guān)系數(shù)據(jù)導(dǎo)入到neo4j集群
  2. 調(diào)整項(xiàng)目代碼結(jié)構(gòu)
  3. 在自己的Acaconda環(huán)境下安裝PyTorch報(bào)錯(cuò)說(shuō)清華源和現(xiàn)在的源有沖突,我特么conda config --show urls就沒(méi)看見有清華的源毙死,我吐了......

2022-01-07

  1. 面向Windows的cuda燎潮,cudnn和Pytorch的完整安裝教程:https://blog.csdn.net/qianbin3200896/article/details/104244538
  2. conda新建環(huán)境以后不能直接使用,需要激活扼倘,全流程步驟如下:
  • 先新建環(huán)境:conda create -n dgl python=3.6.5
  • 然后激活更新base環(huán)境(紅框里的語(yǔ)句)确封,再切換到新建的dgl環(huán)境下


    激活base環(huán)境.png
  1. python文件起名的時(shí)候不要起跟包名或者包下文件名重復(fù)的名字,不然會(huì)報(bào)找不到包的錯(cuò)誤
  2. 學(xué)習(xí)DGL官方文檔再菊,下一步準(zhǔn)備構(gòu)建相應(yīng)的訓(xùn)練數(shù)據(jù)

2022-01-10

  1. 下載neo4j社區(qū)版的四個(gè)不同版本
  2. 設(shè)置dgl訓(xùn)練模式為GPU

2022-01-11

  1. 調(diào)試dgl樣例代碼
  2. 寫試用期總結(jié)

2022-01-12

  1. 畫知識(shí)圖譜加深度學(xué)習(xí)應(yīng)用的PPT

2022-01-13

  1. 編寫只返回推薦商品id和名稱的recommendSameEssence接口
  2. 模擬訓(xùn)練集爪喘,跑節(jié)點(diǎn)分類模型

2022-01-14

  1. top命令參數(shù)含義:https://www.cnblogs.com/Zender/p/7048569.html
  2. 隨機(jī)模擬的節(jié)點(diǎn)特征訓(xùn)練效果很差

2022-01-17

  1. 創(chuàng)建臨時(shí)變量遍歷查詢:
match p=(m:Account {accountId:'xxxxxxxxx'})-[:HISTORICAL_TRANSFER]->(n:Account) set m.totalTransAmt = 0
foreach (link in relationships(p) | set m.totalTransAmt = m.totalTransAmt + link.transAmt) with m,m.totalTransAmt as amount
remove m.totalTransAmt return amount
  1. 查找時(shí)序圖計(jì)算的資料

2022-01-18

  1. 看TGN,沒(méi)咋看懂

2022-01-19

  1. neo4j集群中不能運(yùn)行GDS庫(kù)纠拔,因?yàn)镚DS庫(kù)使用單臺(tái)機(jī)器上的主內(nèi)存來(lái)托管圖形目錄中的圖形和各種算法秉剑。GDS工作負(fù)載會(huì)在運(yùn)行時(shí)消耗機(jī)器的大部分系統(tǒng)資源,可能會(huì)使機(jī)器長(zhǎng)時(shí)間無(wú)響應(yīng)稠诲,進(jìn)而導(dǎo)致數(shù)據(jù)損壞或者集群中斷
  2. 學(xué)習(xí)GDS創(chuàng)建圖侦鹏,圖中關(guān)系,運(yùn)行節(jié)點(diǎn)相似度算法的相關(guān)demo.

2022-01-20

1.翻閱GDS文檔臀叙,理解相關(guān)圖機(jī)器學(xué)習(xí)算法的調(diào)用流程

2022-01-21

  1. 開會(huì)討論neo4j社區(qū)版集群搭建略水,主要需要解決的問(wèn)題是路由;反欺詐進(jìn)展劝萤,先取一個(gè)時(shí)間切片做小范圍訓(xùn)練實(shí)驗(yàn)

2022-01-24

  1. 在neo4j中安裝neosemantics插件時(shí)渊涝,不僅要在neo4j.conf配置文件中加一條dbms.unmanaged_extension_classes=n10s.endpoint=/rdf,還應(yīng)該在dbms.security.procedures.unrestricteddbms.security.procedures.allowlist這兩個(gè)配置項(xiàng)后面都加上n10s.*床嫌,反正我沒(méi)加之間都用不了這個(gè)插件...

2.很神奇的一段cypher:

MATCH (c:`ns0__角色`)-[]->(:`ns0__角色`) WITH c, count(*) AS num
RETURN min(num) AS min, max(num) AS max, avg(num) AS avg_characters, stdev(num) AS stdev

查詢結(jié)果如下跨释,共有221位角色出現(xiàn)在了知識(shí)圖譜中。每個(gè)角色平均解決近3名角色厌处,最多達(dá)到了26名鳖谈,最少僅為1名,標(biāo)準(zhǔn)差為3.79阔涉。


平均交互數(shù)量和標(biāo)準(zhǔn)差.png

3.驗(yàn)證六度理論:

MATCH (a:`ns0__角色`), (b:`ns0__角色`) WHERE id(a) > id(b)
MATCH p=shortestPath((a)-[*]-(b))
RETURN length(p) AS len, [x IN nodes(p) | split(x.uri, 'http://kg.course/marvel')[-1]] AS path
ORDER BY len DESC LIMIT 4
六度理論驗(yàn)證.png

4.查找關(guān)鍵節(jié)點(diǎn):

MATCH (a:`ns0__角色`), (b:`ns0__角色`) WHERE id(a) > id(b)
MATCH p=allShortestPaths((a)-[*]-(b)) WITH collect(p) AS paths, a, b
MATCH (c:`ns0__角色`) WHERE all(x IN paths WHERE c IN nodes(x)) AND NOT c IN [a,b]
RETURN a.uri, b.uri, c.uri AS PivotalNode SKIP 490 LIMIT 10
關(guān)鍵節(jié)點(diǎn).png

2022-01-25

  1. 找合適的圖譜數(shù)據(jù)集缆娃,發(fā)現(xiàn)數(shù)據(jù)集都得二次處理.......找到了一個(gè)企業(yè)投資關(guān)系圖......

2022-01-26

1.處理數(shù)據(jù)集

2022-01-27

1.處理完數(shù)據(jù)集,用了下gds的算法洒敏,效果垃圾的一筆,不過(guò)是應(yīng)該數(shù)據(jù)的問(wèn)題

2022-01-28

  1. 配置了git的ssh key疙驾;導(dǎo)了WN18RR的數(shù)據(jù)集凶伙,運(yùn)行g(shù)ds的社區(qū)檢測(cè)算法效果還是垃圾的一筆.......

2022-02-07

  1. 設(shè)計(jì)賬戶特征:截止到某一天可提取1、3它碎、7函荣、10显押、15.......天內(nèi)的轉(zhuǎn)賬記錄(轉(zhuǎn)入筆數(shù)、轉(zhuǎn)入總額傻挂、轉(zhuǎn)入最大金額乘碑,轉(zhuǎn)出筆數(shù),轉(zhuǎn)入金額金拒,轉(zhuǎn)出最大金額)
  2. 查詢風(fēng)險(xiǎn)賬戶兽肤,不重復(fù)的有94384個(gè)

2022-02-08

  1. 編寫接口將風(fēng)險(xiǎn)賬戶導(dǎo)出至txt文件
  2. 查看hades文檔

2022-02-09

1.找了twitter的數(shù)據(jù)集,處理數(shù)據(jù)中......

2022-02-10

  1. 將處理后的twitter數(shù)據(jù)集使用neo4j-admin方式導(dǎo)入4.3.3社區(qū)版的neo4j中绪抛,測(cè)試用時(shí)為82.4s资铡,相較于3.5企業(yè)版本仍快了111s

2022-02-11

  1. 進(jìn)行了4.3版本的值查詢、簡(jiǎn)單條件遍歷查詢和部分復(fù)雜條件遍歷查詢的相關(guān)測(cè)試

2022-02-14

  1. 完成了復(fù)雜條件遍歷查詢的測(cè)試幢码;
  2. 編寫并發(fā)測(cè)試的方法

2022-02-15

  1. 完成并發(fā)測(cè)試(下面是計(jì)算并發(fā)執(zhí)行時(shí)間的方法)
public long timeCalculator(Executor executor, int concurrency, final Runnable task) throws InterruptedException {
        final CountDownLatch allReady = new CountDownLatch(concurrency);
        final CountDownLatch start = new CountDownLatch(1);
        final CountDownLatch allOver = new CountDownLatch(concurrency);

        for (int i = 0; i < concurrency; i++) {
            executor.execute(new Runnable() {

                @Override
                public void run() {
                    allReady.countDown();
                    try{
                        start.await();
                        task.run();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    } finally {
                        allOver.countDown();
                    }
                }
            });
        }

        allReady.await();
        long startTime = System.nanoTime();
        start.countDown();
        allOver.await();
        long endTime = System.nanoTime();
        return endTime - startTime;
    }
  1. 調(diào)研美團(tuán)知識(shí)圖譜平臺(tái)架構(gòu)的細(xì)節(jié)

2022-02-16

  1. 撰寫GDS介紹文檔
  2. 撰寫美團(tuán)圖數(shù)據(jù)庫(kù)平臺(tái)架構(gòu)技術(shù)文檔

2022-02-17

  1. 寫XR創(chuàng)新點(diǎn)的ppt
  2. 重新測(cè)試4.3版本相關(guān)指標(biāo)

2022-02-18

1.JAVA計(jì)算多線程的執(zhí)行總時(shí)間:

ExecutorService exec = Executors.newCachedThreadPool();
long start = System.nanoTime();

System.out.println("kaishi");
for (int i = 0; i < 3; i++){
    exec.execute(new SlsPredictor(args) );
}
exec.shutdown();
exec.awaitTermination(1, TimeUnit.HOURS); // 或者更長(zhǎng)時(shí)間(這行代碼是關(guān)鍵)  
long time = System.nanoTime() - start;

該函數(shù)所在線程會(huì)陷入阻塞笤休,直到shutdown請(qǐng)求發(fā)出導(dǎo)致所有線程都結(jié)束、或者時(shí)間超時(shí)症副、或者當(dāng)前線程被中斷店雅,這三個(gè)條件只要發(fā)生一個(gè),線程就會(huì)跳出阻塞狀態(tài)贞铣。

2022-02-21

1.找bug闹啦,發(fā)現(xiàn)當(dāng)單線程內(nèi)的查詢次數(shù)為1000時(shí),10并發(fā)數(shù)下的TPS能達(dá)到1587

  1. 接觸了下星云圖數(shù)據(jù)庫(kù)

2022-02-22

  1. 學(xué)習(xí)java多線程上下文切換相關(guān)知識(shí)
  2. 安裝openue中......

2022-02-23

  1. 調(diào)試openue訓(xùn)練代碼

2022-02-24

  1. 制作數(shù)據(jù)湖的創(chuàng)新ppt
  2. 閱讀openue的教程代碼

2022-02-25

  1. Hugging face是美國(guó)紐約的聊天機(jī)器人公司咕娄,他最牛逼的地方在于擁有大型的NLP技術(shù)開源社區(qū)亥揖,他有一個(gè)預(yù)訓(xùn)練語(yǔ)言模型庫(kù)Transformers。直到2019年7月16日圣勒,在repo上已經(jīng)有了包括BERT费变,GPT,GPT-2圣贸,Transformer-XL挚歧,XLNET,XLM在內(nèi)六個(gè)預(yù)訓(xùn)練語(yǔ)言模型

2022-02-28

  1. 下載neo4j 4.3.10企業(yè)版和社區(qū)版
  2. 單調(diào)讀一致性需要保證客戶端不會(huì)讀到舊值吁峻;單調(diào)寫一致性保證了客戶端的寫操作是串行的滑负;讀寫一致性保證了客戶端能夠讀到自己最新寫入的值;寫讀一致性保證了客戶端對(duì)一個(gè)數(shù)據(jù)項(xiàng)的寫操作是基于該客戶端最新讀取的值

2022-03-01

  1. linux更新清華源的時(shí)候報(bào)連不上的錯(cuò)誤用含,把源里面的https改成http就行矮慕,之前好像是因?yàn)閲?guó)外制裁過(guò)一次......
    修改/etc/apt/sources.list為以下內(nèi)容:
# 默認(rèn)注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 預(yù)發(fā)布軟件源啄骇,不建議啟用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

建立 ~/.condarc 文件痴鳄,然后在其中加入:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
  conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

在 ~/ 下建立 .pip文件夾,cd .pip/ 后缸夹,建立 pip.conf文件痪寻,并在其中寫入:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
  1. 在unbutu上安裝Anaconda

2022-03-02

  1. U盤安裝ubuntu教程
    [ubuntu安裝nvidia顯卡驅(qū)動(dòng)] (https://blog.csdn.net/weixin_44123583/article/details/115613758)
  2. 企業(yè)圖譜的數(shù)據(jù)目前想到的是通過(guò)瀏覽器用分頁(yè)的方式導(dǎo)出csv文件

2022-03-03

  1. 多線程由于可以共享堆內(nèi)存螺句,因此可以簡(jiǎn)單地采用內(nèi)存作為標(biāo)記存儲(chǔ)位置。而進(jìn)程之間甚至都不在同一臺(tái)服務(wù)器上橡类,因此需要將標(biāo)記存儲(chǔ)在一個(gè)所有進(jìn)程都能看到的地方
    分布式鎖的資料
  2. 將企業(yè)圖譜的所有節(jié)點(diǎn)信息導(dǎo)出至了csv文件中

2022-03-04

  1. 配置ubuntu 20.4橋接模式
    ubuntu關(guān)閉防火墻命令:ufw disable

  2. 籌劃繪制neo4j社區(qū)版集群技術(shù)方案

2022-03-07

  1. 在ubuntu上安裝deepke項(xiàng)目及環(huán)境蛇尚,訓(xùn)練了全監(jiān)督的關(guān)系抽取模型,但是預(yù)測(cè)效果目前看來(lái)不咋地

2022-03-08

  1. deepke的ner模型用cpu訓(xùn)練巨慢顾画,根本不行取劫;re模型預(yù)測(cè)效果巨差
    批量插入字符快捷鍵:命令行模式下,輸入 " : 首行號(hào)亲雪,尾行號(hào) s /^/字符/g "實(shí)現(xiàn)批量插入字符勇凭。如 輸入:2,7s/^/#/g,在2到7行首插入#义辕,即注釋功能
    批量刪除字符快捷鍵:命令行模式下虾标,輸入 " : 首行號(hào),尾行號(hào) s /^字符//g "實(shí)現(xiàn)批量刪除字符灌砖。如輸入:2,7s/^#//g璧函,即解開注釋
  2. 熟悉apoc導(dǎo)出文件的命令:
  • 先去conf文件夾下面新建一個(gè)apoc.conf文件,然后往里面寫apoc.export.file.enabled=true,如果想導(dǎo)出文件到指定路徑(默認(rèn)是導(dǎo)出到import文件夾下面)基显,就得再寫apoc.import.file.use_neo4j_config=false蘸吓,再去把neo4j.conf里面的dbms.directories.import改成你自己想要導(dǎo)出的目錄路徑。上面的都改完了得重啟neo4j服務(wù)才能生效傲糜摹库继!
MATCH (person:Person)-[actedIn:ACTED_IN]->(movie:Movie)
WITH collect(DISTINCT person) AS people, collect(DISTINCT movie) AS movies, collect(actedIn) AS actedInRels
CALL apoc.export.csv.data(people + movies, actedInRels, "movies-actedIn.csv", {})
YIELD file, source, format, nodes, relationships, properties, time, rows, batchSize, batches, done, data
RETURN file, source, format, nodes, relationships, properties, time, rows, batchSize, batches, done, data

運(yùn)行完你就會(huì)發(fā)現(xiàn)import目錄下面多出來(lái)了 movies-actedIn.csv 文件,具體你想要節(jié)點(diǎn)或者邊也可以自己搭配著寫上面的cypher窜醉。

2022-03-09

  1. neo4j的因果集群:在執(zhí)行一條事務(wù)時(shí)宪萄,客戶端會(huì)向此次交易的服務(wù)器征詢一個(gè)bookmark標(biāo)記作為參數(shù)傳給下一條事務(wù),即該客戶端接下來(lái)的事務(wù)仍然會(huì)請(qǐng)求上次交易的服務(wù)器榨惰。集群通過(guò)bookmark保證了客戶端的事務(wù)不會(huì)在不同服務(wù)器上瞎執(zhí)行拜英,進(jìn)而避免因果不一致的現(xiàn)象發(fā)生。
  2. neo4j轉(zhuǎn)儲(chǔ)操作$neo4j-home> bin/neo4j-admin dump --database=graph.db --to=/backups/graph.db/2016-10-02.dump
    轉(zhuǎn)儲(chǔ)恢復(fù)操作:$neo4j-home> bin/neo4j-admin load --from=/backups/graph.db/2016-10-02.dump --database=graph.db --force
  3. 用apoc將person節(jié)點(diǎn)和group關(guān)系導(dǎo)了出來(lái)

2022-03-10

  1. neo4j-admin unbind通過(guò)移除cluster state屬性從而將集群中的成員服務(wù)器解散
  2. apoc一次性導(dǎo)出的文件太大了琅催,直接插neo4j會(huì)崩居凶,正在切分文件......

2022-03-11

  1. 完成了企業(yè)圖譜的全圖遷移以及與交易圖譜的圖譜整合(Tips:neo4j的index允許字段的值重復(fù),創(chuàng)建方式為create index on :Person(personId),但是constraint不允許)

2022-03-14

  1. selinux由美國(guó)國(guó)安局開發(fā)藤抡,主要作用是最大限度地減少系統(tǒng)中服務(wù)進(jìn)程可訪問(wèn)的資源
  2. 如果配虛擬機(jī)的橋接模式的話侠碧,如果ping不通就先查查主機(jī)的ipv4是不是變了(變了的話就重新再手動(dòng)更新一下,參考上面的虛擬機(jī)配置橋接模式)
  3. linux無(wú)法ping通百度解決辦法(參考)
  4. linux的/etc/hosts文件通常是用來(lái)做常用域名與ip地址的映射缠黍,從而實(shí)現(xiàn)快速訪問(wèn)弄兜,實(shí)現(xiàn)映射的格式為ip地址 域名
  5. firewall-cmd --list-all

2022-03-15

  1. ssh: connect to host 192.168.57.1 port 22: Connection refused解決方案:ufw allow 22 \rightarrow systemctl restart sshd
  2. ubuntu如果因?yàn)橐蕾嚊_突安裝不了openssh-server,更新一下apt-get就行了apt-get update
  3. ssh 本地免密登陸:ssh-keygen一路回車 \rightarrow cd ~/.ssh\rightarrow cat id_rsa.pub >> authorized_keys \rightarrow ssh localhost不用密碼直接能登陸就表示設(shè)置成功了
  4. SSH服務(wù)器拒絕了密碼,請(qǐng)?jiān)僭囈淮蔚慕鉀Q方案:vim /etc/ssh/sshd_config\rightarrow 解開PermitRootLogin和StrictModes配置項(xiàng)\rightarrow 將PermitRootLogin的prohibit-password改為yes\rightarrow :wq保存退出\rightarrow passwd重置一下linux密碼(這一步看情況使用)\rightarrow systemctl restart sshd重啟一下ssh服務(wù)挨队,再去ssh-copi-id /root/.ssh/id_rsa.pub 192.168.69.45進(jìn)行ssh互信
  5. linux查找并刪除所有文件名中帶有特定關(guān)鍵詞的文件:find . -name "*crontab.*" | xargs rm -rf
  6. linux時(shí)鐘同步詳細(xì)教程:同步時(shí)間,可以使用ntpdate命令蒿往,也可以使用ntpd服務(wù)盛垦。前者安裝命令為apt-get install ntpdate,后者安裝命令為apt-get install ntp,值得注意的是ntp和ntpdate不能同時(shí)使用瓤漏,即當(dāng)ntp服務(wù)開啟的時(shí)候無(wú)法進(jìn)行ntpdate手動(dòng)同步腾夯。ntp服務(wù)開啟方法為/etc/init.d/ntp start關(guān)閉方法為/etc/init.d/ntp stop當(dāng)然也可以用service ntp start/stopsystemctl start/stop ntp來(lái)開啟和關(guān)閉,因?yàn)閚tp本身就是個(gè)service蔬充。具體操作可參考教程內(nèi)容(教程里面叫ntpd蝶俱,應(yīng)該是針對(duì)centOS的,在ubuntu中叫ntp饥漫,少一個(gè)字母的差別榨呆,其他文件位置和相關(guān)命令用法沒(méi)區(qū)別)。cn.pool.ntp.org是中國(guó)公共NTP服務(wù)器庸队。
  7. 列出系統(tǒng)的現(xiàn)有服務(wù):systemctl list-unit-files --type=service或者service --status-all

2022-03-16

  1. cron定時(shí)任務(wù)相關(guān)流程:如果沒(méi)有cron就先安裝apt-get install cron\rightarrowcrontab -e進(jìn)入編輯cron表達(dá)式和相關(guān)定時(shí)任務(wù)(注意編寫任務(wù)的時(shí)候不管是服務(wù)還是文件积蜻,都要用絕對(duì)路徑!3瓜竿拆!),編輯完畢按照下面的提示操作保存退出即可\rightarrowservice cron restart(我這么做是懶得去檢查cron服務(wù)的狀態(tài)了宾尚,管你激活沒(méi)激活丙笋,重啟就完事兒了)\rightarrow啟動(dòng)之后你可能會(huì)發(fā)現(xiàn)任務(wù)沒(méi)有執(zhí)行,這時(shí)你可以先簡(jiǎn)單的用service cron status去看看cron運(yùn)行情況:如果想看完整日志的話煌贴,vim /etc/rsyslog.d/50-default.config吩案,進(jìn)去把cron.log前面的注釋解掉,重啟rsyslog:systemctl restart rsyslog,然后就能去/var/log/cron.log里面看了
  • 如果你在運(yùn)行日志里面看見了No MTA installed, discarding output召边,就說(shuō)明你沒(méi)有安裝MTA(Mail Transfer Agent娱俺,郵件傳送代理服務(wù)),那么直接安裝一個(gè)postfix即可:apt-get install postfix井濒,安裝過(guò)程一路回車就行\rightarrowsystemctl restart postfix\rightarrow啟動(dòng)postfix以后灶似,可以去/var/mail/root(這個(gè)不一定是root,但是一定是你當(dāng)前環(huán)境的用戶名)下面看看郵件內(nèi)容
  • 如果又發(fā)現(xiàn)了xxx not found瑞你,那就做個(gè)軟鏈接或者導(dǎo)入環(huán)境變量(我覺(jué)得這個(gè)導(dǎo)入環(huán)境變量好像有點(diǎn)做軟鏈接的味道酪惭,感覺(jué)而已,也許是錯(cuò)的者甲,whatever~)

2022-03-17

  1. neo4j 4.3.x刪除數(shù)據(jù)庫(kù)方法:分別把/data/databases和/data/transactions下面的neo4j文件夾刪掉再重建\rightarrow然后重啟一下服務(wù)就行了
  2. 用session方式往neo4j 4.3.10社區(qū)版里面導(dǎo)節(jié)點(diǎn)信息的時(shí)候春感,每個(gè)csv文件50萬(wàn)條記錄,每條記錄里面13個(gè)屬性,導(dǎo)到第12個(gè)文件的時(shí)候報(bào)錯(cuò):Fatel error occurred in the pipeline: Could not apply transaction to the store after written to log,企業(yè)版當(dāng)初也報(bào)錯(cuò)了鲫懒,但是不是這個(gè)錯(cuò)嫩实,忘了具體內(nèi)容是啥了........google的時(shí)候有一條issuse下面好像是官方人員回復(fù)的,說(shuō)是在4.x版本的neo4j中窥岩,節(jié)點(diǎn)甲献、關(guān)系、路徑實(shí)例都會(huì)和事務(wù)綁定到一起颂翼,報(bào)錯(cuò)里面說(shuō)的是日志寫完以后沒(méi)法兒把事務(wù)存起來(lái)了晃洒,然后df -h看了下服務(wù)器的硬盤,確實(shí)沒(méi)內(nèi)存了.....然后就換了臺(tái)服務(wù)器安裝社區(qū)版neo4j朦乏,再導(dǎo)就沒(méi)啥問(wèn)題了(應(yīng)該球及,因?yàn)?8號(hào)的時(shí)候直接把那些文件拷貝進(jìn)去了)
  3. 制作事理圖譜的ppt

2022-03-18

  1. 兩臺(tái)服務(wù)器之間傳輸文件命令:
  • 對(duì)拷文件夾(包括文件夾本身):
    scp -r /home/neo4j/neo4j-community-4.3.10/ root@203.3.234.209:/home/neo4j
  • 對(duì)拷文件夾下所有文件(不包含文件夾本身):
    scp /home/neo4j/neo4j-community-4.3.10/* root@203.3.234.209:/home/neo4j/neo4j-community-4.3.10/
  1. 把212上企業(yè)版的圖庫(kù)文件(即/data/databases/neo4j和/data/transactions/neo4j下面的那堆數(shù)據(jù)結(jié)構(gòu)和transaction文件)采用scp方式傳輸?shù)搅?09社區(qū)版的neo4j中,然后209重啟了服務(wù)發(fā)現(xiàn)還真的能用I胝睢3砸!66666

2022-03-21

  1. DRBD(Distributed Replicated Block Device)分布式備份塊設(shè)備的primary角色擁有讀寫權(quán)限刽锤,但是secondary角色什么權(quán)限都無(wú)际歼,因?yàn)樗?fù)責(zé)保證緩存的一致性
  2. 查找ubuntu安裝drbd方法,都過(guò)時(shí)了........

2022-03-22

  1. 裝了兩個(gè)centos系統(tǒng)

2022-03-23

  1. 測(cè)試驗(yàn)證deepke關(guān)系抽取模型的相關(guān)效果
  2. 調(diào)研百度的DuIE關(guān)系抽取模型姑蓝,下一步擬將DuIE在本地跑通鹅心,然后構(gòu)建圖譜

2022-03-24

  1. 調(diào)研百度的DuEE事件抽取模型,分析數(shù)據(jù)集纺荧,可以把duee_fin數(shù)據(jù)集用deepke的re訓(xùn)練一下旭愧,但是感覺(jué)效果會(huì)很辣雞,因?yàn)閐uee是篇章級(jí)別的

2022-03-25

  1. 做事理圖譜的ppt

2022-03-28

  1. 詞性標(biāo)注說(shuō)明:
    n:普通名詞 nt:時(shí)間名詞 nd:方位名詞 nl:處所名詞 nh:人名 nhf:姓 nhs:名 ns:地名 nn:族名 ni:機(jī)構(gòu)名 nz:其他專名 v:動(dòng)詞 vd:趨向動(dòng)詞 vl:聯(lián)系動(dòng)詞 vu:能愿動(dòng)詞 a:形容詞 f:區(qū)別詞 m:數(shù)詞  q:量詞 d:副詞 r:代詞 p:介詞 c:連詞 u:助詞 e:嘆詞 o:擬聲詞 i:習(xí)用語(yǔ) j:縮略語(yǔ) h:前接成分 k:后接成分 g:語(yǔ)素字 x:非語(yǔ)素字 w:標(biāo)點(diǎn)符號(hào) ws:非漢字字符串 wu:其他未知的符號(hào)
  2. 命名實(shí)體說(shuō)明:
    B-PER宙暇、I-PER:人名 B-LOC输枯、I-LOC:地名 B-ORG、I-ORG:機(jī)構(gòu)名
  3. OpenNER的訓(xùn)練集也是英文的占贫,ChineseNLP是滴滴的項(xiàng)目桃熄,整理了中文自然語(yǔ)言處理相關(guān)任務(wù)、數(shù)據(jù)集及當(dāng)前最佳結(jié)果
  4. 安裝了PaddleNLP
  5. 在centos上安裝drbd

2022-03-29

  1. 在Linux的Tikanga版本中型奥,hostname是Linux的內(nèi)核參數(shù)瞳收,保存在/proc/sys/kernel/hostname中,但它的值是Linux啟動(dòng)時(shí)由rc.sysinit從/etc/sysconfig/network中加載到內(nèi)核中的厢汹;在CentOS7中螟深,只需要在/etc/hosts里面添加本機(jī)ip和新的主機(jī)名稱,后面他會(huì)自動(dòng)更新hostname值(重連一下就好)
  2. VMWare添加新磁盤:fdisk /dev/sdb\rightarrown\rightarrowp\rightarrow一路回車\rightarroww\rightarrowmkfs.ext4 /dev/sdb1
  3. 安裝drbd(CSDN版本)(Google版本)的時(shí)候上面兩個(gè)博客可以搭配著看烫葬,總的來(lái)說(shuō)Google版本更清晰完整界弧。另外在配置資源文件時(shí)要注意主機(jī)名要與xx.res文件中on后面的域名相同凡蜻,即
    neo4j.res

    另外/dev/sdb1分區(qū)應(yīng)該是一塊未使用的分區(qū),用dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024(這個(gè)操作和后面的對(duì)/dev/drbd0格式化都應(yīng)該在兩臺(tái)服務(wù)器上完成的)創(chuàng)建一個(gè)大小為2G的未使用的虛擬塊設(shè)備垢箕,其中/dev/zero代表一個(gè)永遠(yuǎn)輸出為0的設(shè)備文件划栓,使用它作為輸入可以得到全為空的文件,因此可以用來(lái)創(chuàng)建新文件或以覆蓋的方式消除舊文件条获,例如dd if=/dev/zero of=file count=10 bs=1024將從zero設(shè)備中創(chuàng)建一個(gè)10K大小但內(nèi)容全為0的文件

2022-03-30

  1. umount刪除掛載點(diǎn)報(bào)錯(cuò)正忙的解決辦法:fuser -mv /opt/drbd茅姜,找到對(duì)應(yīng)id后直接kill -9 id殺死,然后再刪除掛載點(diǎn)
  2. 裝好了drbd月匣,但是這玩意兒到底咋用啊

2022-03-31

  1. 寫了一個(gè)簡(jiǎn)單的知識(shí)圖譜查詢接口
  2. drbd的從節(jié)點(diǎn)是不提供服務(wù)的

2022-04-01

  1. linux系統(tǒng)提示只讀文件系統(tǒng),無(wú)法創(chuàng)建文件(read-only file system) 解決辦法:其實(shí)就是查看有沒(méi)有ro掛載的分區(qū)奋姿,如果有就重新掛載
  2. 重裝虛擬機(jī)安好了drbd锄开,兩臺(tái)服務(wù)器能正常使用,下一步測(cè)試其中一臺(tái)宕機(jī)怎么辦

2022-04-02

  1. 修改事件圖譜PPT

2022-04-06

  1. 安裝并配置keepalived
  2. CentOS7.9刪除自帶jdk命令:
    rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
    rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
    rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
    rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64

2022-04-07

  1. drbd各種狀態(tài)說(shuō)明部分故障處理方法
  2. drbd網(wǎng)絡(luò)斷開后各節(jié)點(diǎn)處于cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown狀態(tài)解決辦法:首先umount /opt/drbd把兩臺(tái)服務(wù)器的掛載點(diǎn)都取消掉\rightarrow然后drbdadm secondary neo4j把兩臺(tái)服務(wù)器的狀態(tài)都降為從機(jī)\rightarrow在任意一臺(tái)服務(wù)器上drbdadm disconnect neo4j把連接斷開(過(guò)程會(huì)報(bào)錯(cuò)称诗,沒(méi)關(guān)系萍悴,執(zhí)行了就行可以)\rightarrow緊接著在同一臺(tái)服務(wù)器上執(zhí)行drbdadm connect --discard-my-data neo4j丟棄磁盤上的數(shù)據(jù)進(jìn)行重新同步\rightarrow在另一臺(tái)服務(wù)器上進(jìn)行連接drbdadm connect neo4j\rightarrow執(zhí)行完上述過(guò)程以后兩臺(tái)服務(wù)器應(yīng)該都是Connected狀態(tài)了
  3. keepalived 報(bào)錯(cuò)WARNING - default user ‘keepalived_script‘ for script execution does not exist解決方法:在配置文件中添加運(yùn)行健康檢查腳本的用戶或者組:
global_defs {
    #添加以下參數(shù)即可
    script_user root
    enable_script_security
}
  1. WARNING - script '/data/scripts/check_neo4j.sh' is not executable for uid:gid 0:0 - disabling是因?yàn)闄?quán)限不夠:chmod 755 /data/scripts/check_neo4j.sh
  2. 閱讀梳理博客中的腳本邏輯

2022-04-08

  1. 學(xué)習(xí)keepalived相關(guān)配置

2022-04-11

  1. 計(jì)劃在腳本中通過(guò)ssh的方式控制從機(jī)啟動(dòng)neo4j,但是報(bào)錯(cuò)如下:
    which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
    解決方法如下:
    .bashrc文件中添加JAVA_HOME:
export JAVA_HOME=/usr/local/jdk-11.0.14
export PATH=$JAVA_HOME/bin:$PATH

然后source ~/.bahsrc
原因是ssh在遠(yuǎn)程登陸的時(shí)候會(huì)加載你遠(yuǎn)程的那臺(tái)機(jī)器的.bashrc文件寓免,不會(huì)加載profile環(huán)境變量文件癣诱,然后普通的那種使用賬號(hào)密碼登錄的會(huì)加載profile環(huán)境變量文件

2022-04-12

  1. 研究本地聚類系數(shù)的社區(qū)檢測(cè)算法

2022-04-13

  1. 運(yùn)行GDS的社區(qū)檢測(cè)算法,編寫cypher返回成員最多的社區(qū)(沒(méi)寫出來(lái)......感覺(jué)只能寫函數(shù))

2022-04-14

  1. 編寫查詢兩個(gè)正序數(shù)組的中位數(shù)的方法

2022-04-15

  1. 在行里的企業(yè)流水圖譜中測(cè)試查詢性能袜香,其中查詢兩個(gè)企業(yè)之間所有路徑要耗時(shí)9.8s

2022-04-18

  1. 3.5企業(yè)版查詢兩節(jié)點(diǎn)所有路徑耗時(shí)4.3s撕予,4.3社區(qū)版耗時(shí)3.3s
  2. 查找知識(shí)圖譜相關(guān)專利進(jìn)行學(xué)習(xí)
  3. 查找編譯安裝drbd相關(guān)博客
  4. java源代碼\rightarrow(編譯為)字節(jié)碼class文件\rightarrow(加載到JVM中)可執(zhí)行文件\rightarrow機(jī)器碼

2022-04-19

  1. 撰寫drbd集群搭建手冊(cè)

2022-04-20

  1. drbd集群的備機(jī)不能對(duì)同步磁盤進(jìn)行掛載,因?yàn)閐rbd對(duì)備機(jī)的同步磁盤設(shè)置了寫保護(hù)蜈首,換言之主機(jī)的磁盤在提供服務(wù)的時(shí)候实抡,備機(jī)的磁盤就不能掛載使用
  2. 思考人物三種關(guān)聯(lián)方式查詢企業(yè)接口的查詢邏輯

2022-04-21

  1. 編寫查詢接口中......

2022-04-22

  1. 接口寫完了
  2. 圖卷積網(wǎng)絡(luò)相關(guān)分類內(nèi)容

2022-04-24

  1. 寫專利的背景、問(wèn)題和發(fā)明內(nèi)容章節(jié)

2022-04-25

  1. 查詢接口要按照算法id查詢欢策,但是在代碼里用算法id查不到......

2022-04-26

  1. 瀏覽器傳參的時(shí)候尤其是加密字段吆寨,前后端解析規(guī)則可能不一致

2022-04-27

  1. 用迭代器迭代封裝的方法完成了查詢接口的升級(jí)版(只進(jìn)行一次cypher查詢)

2022-04-28

  1. 編寫老項(xiàng)目graph下兩個(gè)controller的測(cè)試類
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;

@RunWith(SpringRunner.class)
@SpringBootTest
public class GroupQueryControllerTest {
      private MockMvc mockMvc;
      @Autowired
      WebApplicationContext webApplicationContext;

      @Before
      public vlid setUp() throws Exception {
            mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
      }

      @Test
      public void accountApply() throws Exception {
            PreparedParams preparedParams = new PreparedParams();
            MvcResult mvcResult = mockMvc.perform(post("/account/apply")
                     .content(JSON.toJSONObject(preparedParams))
                     .contentType(MediaType.APPLICATION_JSON)
                     .accept(MediaType.APPLICATION_JSON)
                     .andExcept(MockMvcResultMatchers.status().isOk())
                     .andReturn();
      }
}

2022-04-29

  1. yum只下載rpm包不安裝(用于在內(nèi)網(wǎng)環(huán)境下搭建環(huán)境)
    yum install --downloadonly --downloaddir=/opt/self_dependency httpd
    該命令會(huì)將關(guān)于httpd本身及其相關(guān)依賴的rpm包都下載到/opt/self_dependency目錄。但要注意的是踩寇,如果所在系統(tǒng)中已經(jīng)有了上述依賴包啄清,則會(huì)提示Package filename already installed and lasted version,所以如果想在內(nèi)網(wǎng)生產(chǎn)環(huán)境部署俺孙,最好在外網(wǎng)一個(gè)干凈且最小化安裝的系統(tǒng)上把需要的所有rpm包下好(這里著重指的是相關(guān)依賴的rpm)
    yum install -y yum-utils
    yumdownloader --reslove --downloadonly --destdir=/opt/self_dependency httpd
    rpm -ivh filename.rpm

2022-05-05

  1. 編寫人物之間的閉環(huán)查詢cypher

2022-05-06

  1. 編寫人物之間的閉環(huán)查詢接口

2022-05-07

  1. 完成閉環(huán)查詢接口50%

2022-05-09

  1. 閉環(huán)查詢接口完成100%
  2. 區(qū)塊鏈白皮書最后審核

2022-05-10

  1. 異步編程的實(shí)現(xiàn)方案中辣卒,PromiseReactive的反應(yīng)式編程本質(zhì)上還是回調(diào),只是框架的存在一定程度上降低了開發(fā)者的心智負(fù)擔(dān)睛榄;async/await通過(guò)編譯器的CPS變換把普通函數(shù)變成CPS函數(shù),把Continuation也作為了一個(gè)調(diào)用參數(shù)添寺,函數(shù)不僅能從頭運(yùn)行,還能根據(jù)Continuation的指示繼續(xù)從某個(gè)點(diǎn)(例如調(diào)用IO的地方)運(yùn)行懈费。此時(shí)函數(shù)已不僅僅是一個(gè)函數(shù)了计露,他還是一個(gè)狀態(tài)機(jī),每次調(diào)用它或者是它調(diào)用其他異步函數(shù)時(shí),狀態(tài)機(jī)都會(huì)做計(jì)算和狀態(tài)輪換票罐,換言之Continuation就是對(duì)象它自己本身叉趣;Golang代表的用戶狀態(tài)線程完全放棄了操作系統(tǒng)提供的線程機(jī)制,重新實(shí)現(xiàn)了一套線程機(jī)制该押,一切調(diào)度工作均由RunTime接管疗杉。
  2. 查看代碼邏輯梳理企業(yè)關(guān)系含義的文檔
  3. 查找論文的智能推薦章節(jié)的相關(guān)素材

2022-05-11

  1. 看一篇基于稀疏特征分解的KG推薦論文,這篇論文的核心思想就是要用信息增益的概念來(lái)衡量不同特征與用戶偏好的相關(guān)性

2022-05-12

  1. CentOS升級(jí)內(nèi)核方法
  2. 查找融合知識(shí)圖譜的金融產(chǎn)品推薦資料

2022-05-13

  1. 構(gòu)思智能推薦章節(jié)的內(nèi)容

2022-05-16

  1. 撰寫智能推薦章節(jié)的內(nèi)容

2022-05-17

  1. paddlenlp的Taskflow用法

2022-05-18

  1. 查找金融關(guān)系抽取的數(shù)據(jù)集蚕礼,微調(diào)訓(xùn)練報(bào)銷單的實(shí)體抽取

2022-05-19

  1. 撰寫論文的智能風(fēng)控部分
  2. 構(gòu)建金融研報(bào)領(lǐng)域的schema

2022-05-20

  1. 完成論文的智能風(fēng)控部分
  2. 調(diào)研了RocketQA智能問(wèn)答的安裝步驟
  3. 構(gòu)思利用UIE做智能問(wèn)答的可行性

2022-05-23

  1. 梳理知識(shí)圖譜信息抽取項(xiàng)目方案書
  2. 處理生成訓(xùn)練數(shù)據(jù)

2022-05-24

  1. 繪制專利流程圖
  2. 編寫預(yù)處理代碼烟具,標(biāo)注數(shù)據(jù)

2022-05-25

  1. 搭建doccano標(biāo)注工具(Ubuntu版本)(Windows安裝)(我草你媽我真服了啊奠蹬!我就想從windows訪問(wèn)linux虛擬機(jī)上的doccano服務(wù)朝聋,為什么Unbutu的ufw allow 8000設(shè)置不起作用啊,老子調(diào)了一天都快放棄了囤躁!最后用firewall-cmd --zone=public --add-port=8000 --permanent+service firewalld restart\color{red}{重啟}把端口開放成功了冀痕,我真是吐了。然后去查了下iptables狸演、firewall言蛇、ufw三者的區(qū)別,一篇博客里面說(shuō)iptables是最古老宵距,最底層的防火墻腊尚,一般而言讓它開啟著就行,不用去管它满哪;而ufw和firewall都是較新linux系統(tǒng)上的替代iptables的工具跟伏,\color{red}{當(dāng)他們同時(shí)安裝在服務(wù)器上時(shí),兩者之間就會(huì)存在沖突翩瓜。目前看來(lái)受扳,還是firewall是爹}。因?yàn)樵趯?shí)踐過(guò)程中通過(guò)ufw開放了8000端口兔跌,但是用firewall-cmd --zone=public --query-port=8000/tcp查看輸出是no勘高,此時(shí)windows就訪問(wèn)不到虛擬機(jī)的8000端口,這就說(shuō)明即使ufw開放了8000坟桅,但是沒(méi)跟firewall說(shuō)华望,系統(tǒng)就不會(huì)開放8000,所以說(shuō)firewall還是爹啊.

2022-05-26

  1. 寫知識(shí)圖譜關(guān)系抽取項(xiàng)目demo

2022-05-27

  1. 構(gòu)思了一下圖譜問(wèn)答的實(shí)現(xiàn)方案

2022-05-30

  1. 改圖譜抽取生成圖譜的代碼bug

2022-05-31

  1. 打包paddlenlp相關(guān)模型文件仅乓;調(diào)試其他抽取schema

2022-06-01

  1. Paddlepaddle-gpu版本使用時(shí)報(bào)錯(cuò)(docker版本): 去宿主機(jī)上把/usr/local/cuda復(fù)制到docker的/usr/local下面赖舟,再去~/.bashrc里面添加以下環(huán)境變量:export LD_LIBRARY_PATH="/usr/local/cuda/lib64"

2022-06-02

  1. 看股權(quán)穿透的老代碼,正在找節(jié)點(diǎn)id字段在數(shù)據(jù)庫(kù)里面的那個(gè)表(又或者是咋生成的)
  2. 開發(fā)比例超過(guò)百分之十的對(duì)外投資查詢接口(需求特么他自己搞清楚了么.....)

2022-06-06

  1. 編寫按照穿透方向返回單層數(shù)據(jù)的單層股權(quán)穿透接口

2022-06-07

  1. 更改帶有條件的對(duì)外投資接口的返回?cái)?shù)據(jù)格式
  2. 寫專利的權(quán)利說(shuō)明書

2022-06-08

  1. 完成專利的剩余部分

2022-06-09

  1. 改了一下個(gè)人查詢的接口

2022-06-10

  1. 寫了一個(gè)單獨(dú)查詢個(gè)人信息的接口(java的null和""是有區(qū)別的)

2022-06-13

  1. 上網(wǎng)查金融領(lǐng)域的相關(guān)schema夸楣,沒(méi)查到啥有用的
  2. 又試了下uie抽取很詳細(xì)的實(shí)體宾抓,也能抽出來(lái)

2022-06-14

  1. 寫demo代碼子漩,給前端渲染用的

2022-06-15

  1. 完成了浙商年報(bào)的圖譜抽取封裝的代碼實(shí)現(xiàn)
  2. 構(gòu)思任職關(guān)系去重的實(shí)現(xiàn)方法

2022-06-16

  1. java的equals和==
  2. 個(gè)人查詢接口任職關(guān)系去重加合并

2022-06-17

  1. 配合后端測(cè)試接口
  2. 重寫圖譜

2022-06-20

  1. 完成了uie知識(shí)抽取的接口實(shí)現(xiàn)

2022-06-21

  1. 完成知識(shí)抽取到入庫(kù)接口的開發(fā)
  2. 完成簡(jiǎn)單知識(shí)問(wèn)答接口的開發(fā)

2022-06-22

  1. 撰寫大廠分布式產(chǎn)品調(diào)研報(bào)告

2022-06-23

  1. 完成了大廠分布式產(chǎn)品調(diào)研報(bào)告

2022-06-24

  1. 和專利事務(wù)所共同修改專利
  2. 前端無(wú)法登陸有可能是nigix的ip_hash分發(fā)路由配置錯(cuò)誤

2022-06-27

  1. 修改專利,完成定稿
  2. 修改知識(shí)抽取數(shù)據(jù)封裝接口

2022-06-28

  1. 修改知識(shí)抽取項(xiàng)目的數(shù)據(jù)庫(kù)插入接口和問(wèn)答接口

2022-06-29

  1. 構(gòu)建金融知識(shí)抽取的訓(xùn)練數(shù)據(jù)

2022-06-30

  1. 對(duì)集團(tuán)查詢接口新增任職關(guān)系合并的操作

2022-07-01

  1. 梳理股權(quán)穿透接口的返回?cái)?shù)據(jù)邏輯
  2. 標(biāo)注數(shù)據(jù)

2022-07-04

  1. 數(shù)據(jù)標(biāo)注完畢石洗,導(dǎo)出為jsonl文件
  2. 制作接口參數(shù)文檔

2022-07-05

  1. 在內(nèi)網(wǎng)對(duì)模型進(jìn)行微調(diào)幢泼,轉(zhuǎn)換訓(xùn)練文件時(shí)出錯(cuò),正在解決中......

2022-07-06

  1. json.load()讲衫、json.loads()缕棵、json.dump()和json.dumps()
  2. python命令加上-u(unbuffered)參數(shù)后會(huì)強(qiáng)制其標(biāo)準(zhǔn)輸出也同標(biāo)準(zhǔn)錯(cuò)誤一樣不通過(guò)緩存直接打印到屏幕
  3. python -m.png
  4. ONNX (Open Neural Network Exchange)- 開放神經(jīng)網(wǎng)絡(luò)交換格式,作為框架共用的一種模型交換格式涉兽,使用 protobuf 二進(jìn)制格式來(lái)序列化模型招驴,可以提供更好的傳輸性能我們可能會(huì)在某一任務(wù)中將 Pytorch 或者 TensorFlow 模型轉(zhuǎn)化為 ONNX 模型(ONNX 模型一般用于中間部署階段),然后再拿轉(zhuǎn)化后的ONNX模型進(jìn)而轉(zhuǎn)化為我們使用不同框架部署需要的類型枷畏,ONNX 相當(dāng)于一個(gè)翻譯的作用别厘。

2022-07-07

  1. 和問(wèn)答前端聯(lián)調(diào)代碼
  2. 完善抽取問(wèn)答項(xiàng)目方案書

2022-07-08

  1. 重新標(biāo)注訓(xùn)練模型

2022-07-11

  1. 重寫抽取問(wèn)答接口邏輯

2022-07-12

  1. 繼續(xù)重寫抽取問(wèn)答項(xiàng)目的后端接口

2022-07-13

  1. 配合前端完成關(guān)系圖譜接口的數(shù)據(jù)封裝;分析后端是否有bug

2022-07-14

  1. 分析年報(bào)可標(biāo)注的schema

2022-07-15

  1. 看圖卷積的ppt

2022-07-18

  1. 構(gòu)思如何將組織機(jī)構(gòu)與抽取得到的金融指標(biāo)實(shí)體進(jìn)行關(guān)聯(lián)
  2. 開組會(huì)

2022-07-19

  1. 用建行的年報(bào)測(cè)試接口矿辽,根據(jù)新出現(xiàn)的狀況修改完善抽取封裝邏輯
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市郭厌,隨后出現(xiàn)的幾起案子袋倔,更是在濱河造成了極大的恐慌,老刑警劉巖折柠,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宾娜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡扇售,警方通過(guò)查閱死者的電腦和手機(jī)前塔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)承冰,“玉大人华弓,你說(shuō)我怎么就攤上這事±梗” “怎么了寂屏?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)娜搂。 經(jīng)常有香客問(wèn)我迁霎,道長(zhǎng),這世上最難降的妖魔是什么百宇? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任考廉,我火速辦了婚禮,結(jié)果婚禮上携御,老公的妹妹穿的比我還像新娘昌粤。我一直安慰自己既绕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布婚苹。 她就那樣靜靜地躺著岸更,像睡著了一般。 火紅的嫁衣襯著肌膚如雪膊升。 梳的紋絲不亂的頭發(fā)上怎炊,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音廓译,去河邊找鬼评肆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛非区,可吹牛的內(nèi)容都是我干的瓜挽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼征绸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼久橙!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起管怠,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤淆衷,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后渤弛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祝拯,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年她肯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了佳头。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晴氨,死狀恐怖康嘉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情籽前,我是刑警寧澤凄鼻,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站聚假,受9級(jí)特大地震影響块蚌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜膘格,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一峭范、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瘪贱,春花似錦纱控、人聲如沸辆毡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舶掖。三九已至,卻和暖如春尔店,著一層夾襖步出監(jiān)牢的瞬間眨攘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工嚣州, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鲫售,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓该肴,卻偏偏與公主長(zhǎng)得像情竹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子匀哄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容