| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import os
- import pymysql
- def get_db_connection():
- db_host = os.environ.get('DB_HOST', '127.0.0.1')
- db_user = os.environ.get('DB_READER_USER', 'db_reader')
- db_pass = os.environ.get('DB_READER_PASS', 'reader_pass')
- return pymysql.connect(host=db_host, user=db_user, password=db_pass, database='food_db', cursorclass=pymysql.cursors.DictCursor)
- conn = get_db_connection()
- with conn.cursor() as cursor:
- cursor.execute("SELECT COUNT(*) as c FROM food_db.products_core")
- print("Total Core Rows:", cursor.fetchone()['c'])
-
- sq = "white rice"
- bool_search = " ".join([f"+{w}" for w in sq.split()])
- print("Search query:", bool_search)
-
- sql = """
- SELECT code, product_name
- FROM food_db.products_core
- WHERE MATCH(product_name, ingredients_text) AGAINST(%s IN BOOLEAN MODE)
- LIMIT 5
- """
- cursor.execute(sql, (bool_search,))
- res = cursor.fetchall()
- print("Result (MATCH product_name, ingredients_text):", len(res))
-
- # Check if MATCH(product_name) works instead
- sql = """
- SELECT code, product_name
- FROM food_db.products_core
- WHERE product_name LIKE %s
- LIMIT 5
- """
- cursor.execute(sql, (f"%{sq}%",))
- res2 = cursor.fetchall()
- print("Result (LIKE):", len(res2))
- conn.close()
|