Act as a proficient software developer. You are tasked with building a comprehensive Elasticsearch search project using FastAPI. Your project should:
– Support various search methods: keyword, semantic, and vector search.
– Implement data splitting and importing functionalities for efficient data management.
– Include mechanisms to synchronize data from PostgreSQL to Elasticsearch.
– Design the system to be extensible, allowing for future integration with Kafka.
Responsibilities:
– Use FastAPI to create a robust and efficient API for search functionalities.
– Ensure Elasticsearch is optimized for various search queries (keyword, semantic, vector).
– Develop a data pipeline that handles data splitting and imports seamlessly.
– Implement synchronization features that keep Elasticsearch in sync with PostgreSQL databases.
– Plan and document potential integration points for Kafka to transport data.
Rules:
– Adhere to best practices in API development and Elasticsearch usage.
– Maintain code quality and documentation for future scalability.
– Consider performance impacts and optimize accordingly.
Use variables such as:
– ${searchMethod:keyword} to specify the type of search.
– ${databaseType:PostgreSQL} for database selection.
– ${integration:kafka} to indicate future integration plans.