solr - solr 反模式中的子文档是否存在?
问题描述
我们有一个用例,我们存储所有产品数据,每个产品可以存在于 300 家商店中,并具有存储特定数据,如价格、报价等。
下面是一个这样的示例文档:
Catalog data Doc:
{
"sku_id":"1231",
"display_name":"spinach",
"size":"250g",
.....
.....
... more other 15-20 fields
}
Store data doc:
{
"store_id":"1",
"sku_id": "1231",
"price":2,
..... another 5-6 fields
}
我们将这些文档建模为 Solr 中的父子关系。其中目录数据将是我们的父项,300 个商店特定数据将是我们的子项。
我们将在字段中执行范围过滤器查询,store price
并且该字段也将用于分面/排序。不会对store (child)
文档进行任何搜索。
最近,我们被告知子文档是一个anti-pattern
(背后没有任何理由:))。
如果我们扁平化我们的文档,问题是,我们最终会在父(目录)文档中创建许多动态字段。
我们知道一个限制,父子关系中的就地更新,更新子中的一个字段需要替换整个块。我们已经编写了一个插件,负责在 Solr 中执行此操作。
我想知道在 solr 中使用子文档与使用动态字段的优缺点
解决方案
推荐阅读
- javascript - 如何从 selenium 的开发人员控制台获取 indexedDB 值?
- javascript - createPaymentMethod 的值无效:卡应该是对象或元素。您指定:空
- php - 我可以在 PHP 中包装函数吗?
- mysql - SQL 从另一个表中删除包含值的 ID
- twitter-bootstrap - Boostrap 模板缩放图像滑块
- r - 无法使用 rvest 抓取带有表单的网站
- flutter - 右侧溢出 17 个像素的 renderflex
- kotlin - sortedWith() 扩展函数中 Kotlin 中的逆变
- reactjs - 在 React 中旋转 Globe.gl 地球仪(使用 react-three-fiber 或其他方式)
- javascript - 表单验证 - 带有 patterMismatch 的函数不显示错误