dressed_for_succes_store/backend/check_meilisearch.py

97 lines
4.8 KiB
Python

#!/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()