Что использовал для полнотекстного поиска

«Что использовал для полнотекстного поиска» — вопрос из категории Базы данных, который задают на 24% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для полнотекстного поиска в Go можно использовать:

  1. Встроенные решения:

    • strings.Contains() для простых случаев
    • Регулярные выражения (regexp пакет) для сложных паттернов
  2. Специализированные библиотеки:

    • Bleve - популярная Go-библиотека для полнотекстного поиска
    index, _ := bleve.New("example.bleve", bleve.NewIndexMapping())
    index.Index("id1", map[string]interface{}{
        "content": "текст для индексации",
    })
  1. Внешние системы:

    • Elasticsearch (через официальный клиент или olivere/elastic)
    • PostgreSQL с pg_trgm и полнотекстовым поиском

Выбор зависит от масштаба: для простых задач хватит встроенных средств, для сложных - лучше Elasticsearch или Bleve.