在开发过程中,将数据从数据库同步到 Elasticsearch (ES) 是常见的需求之一。本文将重点介绍如何通过 Python 脚本将数据库中的数据插入或更新到 Elasticsearch,并基于多字段的唯一性来判断是否执行插入或更新操作。此外,我们还将深入探讨如何构造复杂的查询条件,例如针对字段的多值匹配。

数据唯一性字段说明

在本示例中,我们使用 A, B, C, 和 D 四个字段来判断数据是否唯一。通过这四个字段生成唯一标识符,在 Elasticsearch 中确保数据的唯一性。下面是完整的实现过程。


脚本实现

1. 数据库查询与数据转换

首先,从数据库中查询所需的数据并将其转换为 Python 字典形式,便于后续插入到 Elasticsearch。

import psycopg2

# 数据库配置
DB_CONFIG = {
    'host': 'localhost',
    'port': 5432,
    'dbname': 'your_database',