MongoDB сортировка с оценкой для текстового поиска наряду с другими критериями весенних данных - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть документ Монго для продуктов электронной коммерции. Я хочу сортировать на основе результатов поиска. У меня есть другие параметры также в пункте поиска. Мой запрос:

db.getCollection('product').find({category_id:42, $text: 
{$search:'red'}},{'score': {'$meta': 'textScore'}}).sort({'score': {'$meta': 'textScore'}}).limit(50)

Как выполнить то же самое в весенних данных?

Я использовал запрос и критерии, но не смог отсортировать по баллу:

Query query = new Query();
query.addCriteria(Criteria.where("category_id").is(42));
 query.addCriteria(TextCriteria.forDefaultLanguage().
 matching("red"));

mongoTemplate.find(query, A.class, "product");

Но здесь нет возможности сортировать по баллам. Как отсортировать на основе оценки?

1 Ответ

0 голосов
/ 06 ноября 2019

Пожалуйста, ознакомьтесь с справочной документацией и используйте TextQuery для применения сортировки по баллам.

TextQuery query = new TextQuery(TextCriteria.forDefaultLanguage().matching("red"));
query.addCriteria(Criteria.where("category_id").is(42));
query.sortByScore();

Я создал DATAMONGO-2407 дляулучшите документы, сделав опцию сортировки более заметной.

...