如何设置具有多个实体绑定的 ElasticSearch 索引结构
简介
建立一个有效的 ElasticSearch (ES) 索引结构对于高效管理和查询数据至关重要。使用多个实体绑定时,优化索引以获得最佳搜索和检索性能至关重要。
扁平化数据结构
在提供的数据库结构中,多个表格用于表示产品及其相关标志。为了简化ES索引,建议对数据结构进行扁平化和非规范化。通过创建包含所有相关信息(包括标志)的产品文档,我们消除了产品和标志之间的 N:M 关系。这种方法可以更轻松地查询标志属性。
示例产品文档
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] } { "id": "018357657529fef056cf396626812", "title": "Beta", "price": 355.0, "flags": ["Discount"] } { "id": "01a2c32ceeff0fc6b7dd4fc4302ab", "title": "Gamma", "price": 0.0, "flags": ["Discount"] }
产品映射类型
产品文档的 ES 映射类型将是:
PUT products { "mappings": { "product": { "properties": { "id": { "type": "string", "index": "not_analyzed" }, "title": { "type": "string" }, "price": { "type": "double", "null_value": 0.0 }, "flags": { "type": "string", "index": "not_analyzed" } } } } }
用于获取数据的 SQL 查询
要从数据库中提取所需的数据,需要修改 SQL 查询:
以上是如何优化多实体绑定的ElasticSearch索引结构?的详细内容。更多信息请关注PHP中文网其他相关文章!