首页 > 数据库 > mysql教程 > 如何优化多实体绑定的ElasticSearch索引结构?

如何优化多实体绑定的ElasticSearch索引结构?

Linda Hamilton
发布: 2024-12-04 06:34:19
原创
1033 人浏览过

How to Optimize ElasticSearch Index Structure for Multiple Entity Bindings?

如何设置具有多个实体绑定的 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板