fix: clean query for smart fallback to work properly
Browse files- "Marlin 4 var mı" → "MARLIN 4" cleaning
- Remove "var mı", "stok", "fiyat" suffixes from query
- Smart fallback now works: MARLIN 4 → MARLIN 4 GEN 3 (2026)
- Add logging to track query cleaning process
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
- combined_api_search.py +11 -3
combined_api_search.py
CHANGED
@@ -380,15 +380,23 @@ def get_warehouse_stock_combined_api(query):
|
|
380 |
# Örn: "marlin 4" arandığında MARLIN 4 yoksa MARLIN 4 GEN 3'ü göster
|
381 |
query_normalized = normalize_turkish(query.upper())
|
382 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
383 |
# Genel ürün adı aranıyorsa (model numarası yok)
|
384 |
-
if not any(year in
|
385 |
# Stokta olan modelleri kontrol et
|
386 |
stocked_alternatives = []
|
387 |
|
388 |
for product in results:
|
389 |
name_normalized = normalize_turkish(product['name'].upper())
|
390 |
-
# Ana ürün adıyla eşleşiyor mu?
|
391 |
-
if
|
392 |
# Ana ürün mü?
|
393 |
if is_main_product(product['name']):
|
394 |
# Stokta mı veya varyantları var mı?
|
|
|
380 |
# Örn: "marlin 4" arandığında MARLIN 4 yoksa MARLIN 4 GEN 3'ü göster
|
381 |
query_normalized = normalize_turkish(query.upper())
|
382 |
|
383 |
+
# Query'yi temizle - "var mı", "stok", "fiyat" gibi ekleri çıkar
|
384 |
+
clean_query = query_normalized
|
385 |
+
for suffix in ['VAR MI', 'VAR MIYDI', 'STOK', 'STOKTA', 'FIYAT', 'FIYATI', 'KACA', 'NE KADAR']:
|
386 |
+
clean_query = clean_query.replace(' ' + suffix, '').replace(suffix + ' ', '').replace(suffix, '')
|
387 |
+
clean_query = clean_query.strip()
|
388 |
+
|
389 |
+
logger.info(f"🧹 Query temizlendi: '{query}' → '{clean_query}'")
|
390 |
+
|
391 |
# Genel ürün adı aranıyorsa (model numarası yok)
|
392 |
+
if not any(year in clean_query for year in ['GEN', '2024', '2025', '2026', '(20']):
|
393 |
# Stokta olan modelleri kontrol et
|
394 |
stocked_alternatives = []
|
395 |
|
396 |
for product in results:
|
397 |
name_normalized = normalize_turkish(product['name'].upper())
|
398 |
+
# Ana ürün adıyla eşleşiyor mu? (temizlenmiş query ile)
|
399 |
+
if clean_query in name_normalized:
|
400 |
# Ana ürün mü?
|
401 |
if is_main_product(product['name']):
|
402 |
# Stokta mı veya varyantları var mı?
|