我一直在使用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. Solr - 查詢嵌套子文檔
- 3. 用spring-data solr嵌套文檔
- 4. 貓鼬子文檔VS嵌套模式
- 5. 將SOLR中的文檔移至elasticsearch
- 6. Elasticsearch。嵌套查詢嵌套在嵌套
- 7. ElasticSearch:通過嵌套文件
- 8. 如何在Solr索引中創建嵌套文檔?
- 9. 在ElasticSearch中,如何篩選結果中的嵌套文檔?
- 10. 如何查詢內部對象中的Elasticsearch嵌套文檔?
- 11. ElasticSearch中唯一嵌套文檔的計數
- 12. 在ElasticSearch中匹配嵌套文檔中的多個屬性
- 13. 搜索查詢檢索elasticsearch嵌套文檔與_source殘疾人
- 14. 使用Spring Boot + Spring Data Elasticsearch嵌套的文檔&父/子設置
- 15. Solr vs文檔編碼問題
- 16. Solr的managed_schema與嵌入文檔
- 17. 嵌套HTML文檔內聯
- 18. MongoDB嵌套文檔搜索
- 19. MongoDB的PHP嵌套文檔
- 20. 查詢嵌套文檔mongoDB
- 21. Minimongo嵌套查詢嵌入文檔
- 22. 問題持續嵌套嵌套嵌入文檔
- 23. SOLR中的嵌套字段
- 24. 配置嵌套實體SOLR
- 25. 添加一個嵌套的文件嵌套文檔的數組
- 26. 如何用嵌套文檔的solr執行部分文本搜索?
- 27. Elasticsearch query_string嵌套查詢
- 28. ElasticSearch獲取嵌套屬性
- 29. Elasticsearch嵌套親子映射
- 30. ElasticSearch雙重嵌套排序
再次感謝。我試過Elasticsearch,它的準確性遠遠落後於Solr。我會堅持Solr。 – Yangrui