#!/usr/bin/env python import sys import os from pathlib import Path # Добавляем родительскую директорию в sys.path, чтобы импортировать модули приложения sys.path.append(str(Path(__file__).parent)) from app.services.meilisearch_service import client, PRODUCT_INDEX, CATEGORY_INDEX, COLLECTION_INDEX, SIZE_INDEX def main(): """ Скрипт для проверки данных в Meilisearch. """ print("Проверка данных в Meilisearch...") try: # Проверяем наличие индексов try: indexes = client.get_indexes() print(f"Индексы: {len(indexes['results'])}") for index in indexes["results"]: print(f" - {index['uid']}: {index['primaryKey']}") except Exception as e: print(f"Ошибка при получении индексов: {str(e)}") # Проверяем наличие категорий try: # Проверяем настройки индекса категорий print("\nНастройки индекса категорий:") filterable_attributes = client.index(CATEGORY_INDEX).get_filterable_attributes() print(f" Фильтруемые атрибуты: {filterable_attributes}") searchable_attributes = client.index(CATEGORY_INDEX).get_searchable_attributes() print(f" Поисковые атрибуты: {searchable_attributes}") # Получаем категории categories = client.index(CATEGORY_INDEX).get_documents({"limit": 100}) print(f"\nКатегории: {len(categories['results'])}") for category in categories["results"]: print(f" - {category['id']}: {category['name']} (slug: {category['slug']})") # Проверяем поиск категорий print("\nПоиск категорий:") search_result = client.index(CATEGORY_INDEX).search("", {"limit": 100}) print(f" Найдено категорий: {len(search_result['hits'])}") print(f" Общее количество категорий: {search_result['estimatedTotalHits']}") except Exception as e: print(f"Ошибка при получении категорий: {str(e)}") # Проверяем наличие коллекций try: collections = client.index(COLLECTION_INDEX).get_documents({"limit": 100}) print(f"Коллекции: {len(collections['results'])}") for collection in collections["results"]: print(f" - {collection['id']}: {collection['name']} (slug: {collection['slug']})") except Exception as e: print(f"Ошибка при получении коллекций: {str(e)}") # Проверяем наличие размеров try: sizes = client.index(SIZE_INDEX).get_documents({"limit": 100}) print(f"Размеры: {len(sizes['results'])}") for size in sizes["results"]: print(f" - {size['id']}: {size['name']} (code: {size['code']})") except Exception as e: print(f"Ошибка при получении размеров: {str(e)}") # Проверяем наличие продуктов try: products = client.index(PRODUCT_INDEX).get_documents({"limit": 5}) print(f"Продукты: {len(products['results'])}") for product in products["results"]: print(f" - {product['id']}: {product['name']} (slug: {product['slug']})") except Exception as e: print(f"Ошибка при получении продуктов: {str(e)}") # Проверяем настройки индексов try: print("\nНастройки индекса продуктов:") filterable_attributes = client.index(PRODUCT_INDEX).get_filterable_attributes() print(f" Фильтруемые атрибуты: {filterable_attributes}") searchable_attributes = client.index(PRODUCT_INDEX).get_searchable_attributes() print(f" Поисковые атрибуты: {searchable_attributes}") sortable_attributes = client.index(PRODUCT_INDEX).get_sortable_attributes() print(f" Сортируемые атрибуты: {sortable_attributes}") except Exception as e: print(f"Ошибка при получении настроек индекса продуктов: {str(e)}") except Exception as e: print(f"Ошибка при проверке данных в Meilisearch: {str(e)}") if __name__ == "__main__": main()