@Partizanin
Java Developer

Как сделать поиск по тексту c сортировкой spring mongodb?

Здравствуйте, подскажите может кто работал со Spring data mongoDB

как сделать такое с монго драйвером ?

db.stores.find(
   { $text: { $search: "java coffee shop" } },
   { score: { $meta: "textScore" } }
).sort( { score: { $meta: "textScore" } } )



Вот что-то подобное есть,но это не совсем то, это пройстой match а не search

override fun getSearchedFiles(searchQuery: String, pageNumber: Long, pageSize: Long, direction: Sort.Direction, sortColumn: String): MutableList<SystemFile> {

        val matching = TextCriteria.forDefaultLanguage().matching(searchQuery)


        val match = MatchOperation(matching)
        val sort = SortOperation(Sort(direction, sortColumn))
        val skip = SkipOperation((pageNumber * pageSize))
        val limit = LimitOperation(pageSize)

        val aggregation = Aggregation
                .newAggregation(match, skip, limit)
                .withOptions(Aggregation.newAggregationOptions().allowDiskUse(true).build())

        val mappedResults = template.aggregate(aggregation, "files", SystemFile::class.java).mappedResults


        return mappedResults
    }
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
А почему бы вам не использовать Hibernate Search или ElasticSearch? Если я правильно понял задачу...
Там есть и сортировка и фильтрация и много чего другого...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
29 мар. 2024, в 15:11
50000 руб./за проект
29 мар. 2024, в 15:06
50000 руб./за проект