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