Browse Source

[#1] Add auto-indexing of FULLTEXT columns to ingest_csv.py

Lange François 2 weeks ago
parent
commit
26ae10b18c
1 changed files with 28 additions and 0 deletions
  1. 28 0
      ingest_csv.py

+ 28 - 0
ingest_csv.py

@@ -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__":