天天看點

60_elasticSearch 通過資料備援實作使用者與部落格的關聯60_通過資料備援實作使用者與部落格的關聯

60_通過資料備援實作使用者與部落格的關聯

更多幹貨

  • 分布式實戰(幹貨)
  • spring cloud 實戰(幹貨)
  • mybatis 實戰(幹貨)
  • spring boot 實戰(幹貨)
  • React 入門實戰(幹貨)
  • 建構中小型網際網路企業架構(幹貨)
  • python 學習持續更新
  • ElasticSearch 筆記

一、例子

1、構造備援的使用者和部落格資料

第二種模組化方式:用備援資料,采用文檔資料模型,進行資料模組化,實作使用者和部落格的關聯

PUT /website/users/1
{
  "name":     "喬峰",
  "email":    "[email protected]",
  "birthday":      "1980-01-01"
}
           
PUT /website/blogs/1
{
  "title": "喬峰的第一篇部落格",
  "content": "大家好,我是喬峰。。。",
  "userInfo": {
    "userId": 1,
    "username": "喬峰"
  }
}

           

備援資料,就是說,将可能會進行搜尋的條件和要搜尋的資料,放在一個doc中

2、基于備援使用者資料搜尋部落格

GET /website/blogs/_search 
{
  "query": {
    "term": {
      "userInfo.username.keyword": {
        "value": "喬峰"
      }
    }
  }
}
           

就不需要走應用層的join,先搜一個資料,找到id,再去搜另一份資料

直接走一個有備援資料的type即可,指定要的搜尋條件,即可搜尋出自己想要的資料來

3、優點和缺點

  • 優點:性能高,不需要執行兩次搜尋
  • 缺點:資料備援,維護成本高 --> 每次如果你的username變化了,同時要更新user type和blog type

一般來說,對于es這種NoSQL類型的資料存儲來講,都是備援模式.

當然,你要去維護資料的關聯關系,也是很有必要的,是以一旦出現備援資料的修改,必須記得将所有關聯的資料全部更新

相關文章

  • ElasticSearch 筆記
  • 1_ElasticSearch使用term filter來搜尋資料
  • 2_ElasticSearch filter執行原理 bitset機制與caching機制
  • 3_ElasticSearch 基于bool組合多個filter條件來搜尋資料
  • 4_ElasticSearch 使用terms搜尋多個值
  • 5_ElasticSearch 基于range filter來進行範圍過濾
  • 6_ElasticSearch 控制全文檢索結果的精準度
  • 7_ElasticSearch term+bool實作的multiword搜尋原理
  • 8_基于boost的搜尋條件權重控制
  • 9_ElasticSearch 多shard場景下relevance score不準确
  • 10_ElasticSearch dis_max實作best fields政策進行多字段搜尋
  • 11_ElasticSearch 基于tie_breaker參數優化dis_max搜尋效果
  • 12_ElasticSearch multi_match文法實作dis_max+tie_breaker
  • 13_ElasticSearch multi_match+most fiels政策進行multi-field搜尋
  • 14_ElasticSearch 使用most_fields政策進行cross-fields search
  • 15_ElasticSearch copy_to定制組合field進行cross-fields搜尋
  • 16_ElasticSearch 使用原生cross-fiels 查詢
  • 17_ElasticSearch phrase matching搜尋
  • 18_ElasticSearch 基于slop參數實作近似比對
  • 19_ElasticSearch 使用match和近似比對實作召回率與精準度的平衡
  • 20_ElasticSearch rescoring機制優化近似比對搜尋的性能
  • 21_ElasticSearch 字首搜尋、通配符搜尋、正則搜尋
  • 22_ElasticSearch 搜尋推薦match_phrase_prefix實作search-time
  • 23_ElsaticSearch 搜尋推薦ngram分詞機制實作index-time更多幹貨
  • 24_ElasticSearch TF&IDF算法以及向量空間模型
  • 25_ElasticSearch 揭秘lucene的相關度分數算法
  • 26_ElasticSearch 四種常見的相關度分數優化方法
  • 27_ElasticSearch用function_score自定義相關度分數算法
  • 28_ElasticSearch誤拼寫時的fuzzy模糊搜尋技術
  • 29_ElasticSearchIK中文分詞器的安裝和使用
  • 30_ElasticSearch IK分詞器配置檔案 以及自定義詞庫
  • ElasticSearchIK中文分詞器的安裝和使用
  • 日志管理ELK

繼續閱讀