Встречается на собеседованиях • сегодня

Работал ли с полнотекстовым поиском

Да, работал с полнотекстовым поиском, в основном через PostgreSQL (tsvector/tsquery) и Elasticsearch.

PostgreSQL пример:

sql
-- Создание индекса
CREATE INDEX idx_fts ON articles USING gin(to_tsvector('english', content));

-- Поиск
SELECT title FROM articles 
WHERE to_tsvector('english', content) @@ to_tsquery('english', 'python & django');

Elasticsearch (Python):

python
from elasticsearch import Elasticsearch

es = Elasticsearch()
res = es.search(index="articles", body={
    "query": {
        "match": {
            "content": "python django"
        }
    }
})

Нюансы:

  • Stemming, ранжирование результатов
  • Поддержка языков (стоп-слова, морфология)
  • Оптимизация индексов для больших объемов данных

Для простых задач хватает PostgreSQL, для сложных (fuzzy-поиск, агрегации) — Elasticsearch.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы