@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
    }
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
А почему бы вам не использовать Hibernate Search или ElasticSearch? Если я правильно понял задачу...
Там есть и сортировка и фильтрация и много чего другого...
Ответ написан
Ваш ответ на вопрос

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

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