PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Whoosh.

Whoosh - это библиотека для полнотекстового поиска, индексации и исправления опечаток на чистом Python, работающая без внешних серверов, C-компиляторов и бинарных зависимостей.

Вся система поднимается одной командой pip install whoosh3. Индекс хранится прямо в виде файлов в локальной директории, поэтому инструмент идеально подходит для десктопных и CLI-приложений, генераторов статических сайтов, а также RAG-пайплайнов для нейросетей.

🔹Ключевые возможности:

🔘Чистый Python: Запускается везде, где есть CPython (включая PyPy и WebAssembly/Pyodide прямо в браузере).

🔘Встроенный формат (Embedded): Никаких внешних сервисов, портов и настройки инфраструктуры — поисковый индекс представляет собой обычную папку с файлами.

🔘Полноценный поисковый движок: Поддерживает ранжирование результатов по алгоритму BM25F, сложный язык запросов (фразовый поиск, wildcards, fuzzy, логические операторы), подсветку найденных фрагментов и фасетную навигацию.

🔘Проверка орфографии: Встроенный модуль коррекции опечаток и подсказок «Возможно, вы имели в виду...» (Did you mean?).

🔘Строгая типизация (PEP 561): Полная поддержка подсказок типов для mypy, pyright и современный IDE.

🤖Современные ИИ-сценарии:

🔘RAG для LLM: Используется как быстрый BM25-ретривер для нейросетей без развертывания тяжелых векторных баз данных (есть готовые интеграции для LangChain и LlamaIndex).

🔘MCP-сервер: Содержит встроенный модуль whoosh3[mcp], позволяющий превратить любую папку с документами в локальный инструмент поиска для ИИ-агентов.

🔘Поиск в терминале: Включает готовый CLI-инструмент whoosh search ~/notes — удобная альтернатива grep с поддержкой морфологии (стемминга) и ранжирования результатов.

🚀Быстрый старт:

from whoosh.fields import Schema, TEXT, ID
from whoosh.index import create_in
from whoosh.qparser import QueryParser
import tempfile

# 1. Описываем схему документов
schema = Schema(title=TEXT(stored=True), path=ID(stored=True), content=TEXT)

# 2. Создаем индекс в папке
ix = create_in(tempfile.mkdtemp(), schema)

# 3. Добавляем документы
writer = ix.writer()
writer.add_document(title="Первая", path="/a", content="Полнотекстовый поиск на Python")
writer.commit()

# 4. Ищем по индексу
with ix.searcher() as searcher:
query = QueryParser("content", ix.schema).parse("поиск")
for hit in searcher.search(query):
print(hit["title"], "->", hit["path"])


#Python #Whoosh #SearchEngine #BM25 #RAG #MCP #DevTools #OpenSource #DataScience

📱Ссылка на репозиторий:
https://github.com/priya-sundaram-dev/whoosh
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥4⚡22