|
|
@@ -195,6 +195,34 @@ def ingest_file(filename, engine):
|
|
|
|
|
|
notifier.send_alert(f"Ingestion Finished: {filename}")
|
|
|
print(f"\n✅ Finished importing {filename}.")
|
|
|
+
|
|
|
+ # Auto-create required FULLTEXT search indexes if not present
|
|
|
+ print("🚀 Creating FULLTEXT indexes on products_core for Streamlit search RAG...")
|
|
|
+ with engine.begin() as conn:
|
|
|
+ try:
|
|
|
+ res = conn.execute(text("SHOW INDEX FROM products_core WHERE Key_name = 'idx_prod_name'"))
|
|
|
+ if not res.fetchall():
|
|
|
+ conn.execute(text("ALTER TABLE products_core ADD FULLTEXT INDEX idx_prod_name (product_name)"))
|
|
|
+ print("Created FULLTEXT index: idx_prod_name")
|
|
|
+ except Exception as e:
|
|
|
+ print(f"Warning: Could not create index idx_prod_name: {e}")
|
|
|
+
|
|
|
+ try:
|
|
|
+ res = conn.execute(text("SHOW INDEX FROM products_core WHERE Key_name = 'idx_ing_text'"))
|
|
|
+ if not res.fetchall():
|
|
|
+ conn.execute(text("ALTER TABLE products_core ADD FULLTEXT INDEX idx_ing_text (ingredients_text)"))
|
|
|
+ print("Created FULLTEXT index: idx_ing_text")
|
|
|
+ except Exception as e:
|
|
|
+ print(f"Warning: Could not create index idx_ing_text: {e}")
|
|
|
+
|
|
|
+ try:
|
|
|
+ res = conn.execute(text("SHOW INDEX FROM products_core WHERE Key_name = 'idx_prod_ing'"))
|
|
|
+ if not res.fetchall():
|
|
|
+ conn.execute(text("ALTER TABLE products_core ADD FULLTEXT INDEX idx_prod_ing (product_name, ingredients_text)"))
|
|
|
+ print("Created FULLTEXT index: idx_prod_ing")
|
|
|
+ except Exception as e:
|
|
|
+ print(f"Warning: Could not create index idx_prod_ing: {e}")
|
|
|
+
|
|
|
return True
|
|
|
|
|
|
if __name__ == "__main__":
|