@EugeneMedvedev

Kак сделать приблизительный поиск MongoDB?

Интересно можно ли сделать приблизительный поиск без использования regex.

Мой запрос ниже. Хочется сделать быстрый поиск документов по частичному совпадению. Хотя бы не по содержимому и тайтлам, а только по тайтлам.

Мне кажется, что я где-то натыкался на что-то такое ранее. Там были процентные очки совпадения и вывод отталкивался на процентность. Вот мне интересна эта штука, потому что снова найти у меня ее не получилось. Хотя может она мне и приснилась))

Например, чтобы при запросе "Определенные интегралы" выводились такие документы с тайтлами как "как решить эти интегГралы". Условно, тут совпадение 30% из-за 1\2 строки запроса + лишней буквы, а значит выводить можно, но где-нибудь в конце списка. Я думаю, что есть те, кто поймет что я пытаюсь объяснить.

Вообще я только недавно открыл для себя aggregate, до этого случая мне хватало find. Удобная штука и я не удивлюсь, если в ней есть нужный мне механизм или хотя бы похожий.

.aggregate([
            {$skip: Number(10*((Number(req.query.page) <= 0 ? 0 : req.query.page - 1)))},
            {$limit: 10},
            {
                $project:{
                    answers:{$size:"$answers"},
                    title: "$title",
                    subscribers: {$size:"$subscribers"},
                    creator: "$creator",
                    tags: "$tags",
                    rate: "$rate",
                    timestamp: "$timestamp",
                    index: "$index"
            } 
        }])
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Попробуйте это
https://dev.to/djnitehawk/mongodb-fuzzy-text-searc...

Впрочем лучше использовать специальные поисковые движки типа Sphinx
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы