我一直在使用solr作爲我的項目,但最近我遇到了Elasticsearch,這看起來非常有希望。我的項目需要處理嵌套文檔的能力,我想知道哪一個能更好地工作。 Solr最近剛剛添加了兒童文檔,但它與Elasticsearch的一樣好嗎? Elasticsearch可以同時對父項和子項執行查詢嗎?謝謝Solr vs Elasticsearch嵌套文檔
回答
我不知道Elastic Search,所以這總是50%的答案。 Solr與非規格化數據的效果最佳。然而,考慮到你嵌套了文件,你可以在兩種情況下使用的Solr:
- 查詢父,有子屬性
- 查詢一個父母的所有兒童。
您可以使用塊連接執行上述查詢。儘管你處理嵌套關卡,但solr內部管理它們是非規範化的。我的意思是,當一個父母有兩個孩子時,最終會得到三個solr中的高級文檔。並solr管理關係部分。
我一直在研究這個主題最近和我的理解ElasticSearch使生活更容易處理嵌套的文檔,雖然Solr也支持嵌套(但在查詢中不太靈活)。
所以ElasticSearch的特點是:
「無縫」支持嵌套:你不必改變你的 嵌套文檔的結構或添加特定的域。然而,你需要 在創建 指數
在哪些領域嵌套的映射,表示支持以「嵌套」和「路徑」嵌套查詢:
支持嵌套文檔聚合和過濾:還通過 「嵌套」和「路徑」。
使用Solr你必須:
修改您schema.xml中通過添加_ _根場
修改您的數據集,這樣父母和孩子文件將有具體區別字段,特別是子文檔表示兒童(詳見this question)
對嵌套文檔進行聚合和過濾可能會非常複雜,如果不是不可能的話。
另外,根本不支持嵌套字段。
最近的Solr版本(5.1及更高版本)最終可以配置爲支持嵌套(包括您必須更改輸入數據結構),但文檔不是很清楚,因爲Internet上沒有太多的信息,因爲這些功能是最近的。
底線是,在嵌套文檔的意義上,ElasticSearch可以完成Solr所能做的所有事情,甚至可以用更少的工作量和更平滑的學習曲線完成所有功能。因此,在這種情況下,使用ElasticSearch似乎更合理。
聽起來不錯。會試試看! – Yangrui
- 1. Solr嵌套文檔索引
- 2. 查詢嵌套文檔Elasticsearch
- 3. 用spring-data solr嵌套文檔
- 4. Solr - 查詢嵌套子文檔
- 5. May Elasticsearch嵌套查詢僅返回嵌套字段的匹配嵌套文檔?
- 6. 貓鼬子文檔VS嵌套模式
- 7. Elasticsearch。嵌套查詢嵌套在嵌套
- 8. 將SOLR中的文檔移至elasticsearch
- 9. ElasticSearch:通過嵌套文件
- 10. 在Elasticsearch中,多個頂級文檔可以共享單個嵌套文檔嗎?
- 11. Solr,如何在schema.xml中定義嵌套文檔
- 12. 如何在Solr索引中創建嵌套文檔?
- 13. ElasticSearch:從嵌套聚集查詢中訪問外文檔字段
- 14. 如何過濾elasticsearch中的嵌套文檔?
- 15. ElasticSearch中唯一嵌套文檔的計數
- 16. 使用Spring Boot + Spring Data Elasticsearch嵌套的文檔&父/子設置
- 17. elasticsearch:按匹配嵌套文檔的值進行排序
- 18. 在ElasticSearch中,如何篩選結果中的嵌套文檔?
- 19. 在ElasticSearch中匹配嵌套文檔中的多個屬性
- 20. ElasticSearch:通過嵌套文檔的值進行排序
- 21. 搜索查詢檢索elasticsearch嵌套文檔與_source殘疾人
- 22. ElasticSearch中的術語,嵌套文檔和must_not查詢不兼容?
- 23. 在ElasticSearch中返回部分嵌套文檔
- 24. 鏈接嵌套文檔在一起並在ElasticSearch
- 25. 如何查詢內部對象中的Elasticsearch嵌套文檔?
- 26. Elasticsearch前綴查詢不適用於嵌套文檔
- 27. Solr vs文檔編碼問題
- 28. 嵌套聚合Elasticsearch
- 29. Elasticsearch,嵌套聚合
- 30. Elasticsearch嵌套查詢
再次感謝。我試過Elasticsearch,它的準確性遠遠落後於Solr。我會堅持Solr。 – Yangrui