2016-01-20 3 views
0

У меня есть этот запрос Монго (Java):Java: как ограничить результаты оценки в Монго

TextQuery.queryText(textCriteria).sortByScore().limit(configuration.getSearchResultSize()) 

, который выполняет поиск текста и сортировать по баллам. Я дал разные wiehgt для разных полей в документе, и теперь я бы хотел получить только те результаты со счетом ниже 10.

есть ли способ добавить эти критерии в запрос?

это не сработало:

query.addCriteria(Criteria.where("score").lt(10)); 

если единственный способ использовать агрегацию - Мне нужен пример mongoTemplate для этого.

других слов

как делать я перевожу следующую Монго оболочку команды агрегата, для команды Java весны mongoTemplate ?? нигде не могу найти, как использовать MATCH() API агрегированном в с $ Текст поиска компонента (за $ текст индексируется на нескольких различных областях):

db.text.aggregate(
    [ 
    { $match: { $text: { $search: "read" } } }, 
    { $project: { title: 1, score: { $meta: "textScore" } } }, 
    { $match: { score: { $lt: 10.0 } } } 
    ] 
) 

Спасибо!

+0

Shemerk, Примите ответ, если вы чувствуете, что ответ полезен. – Manindar

ответ

1

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

BasicDBObject query = new BasicDBObject() 
query.put(column_name, new BasicDBObject("$regex", searchString).append("$options", "i")); 
DBCursor cursor = dbCollection.find(query); 
cursor.skip((pageNum-1)*limit); 
cursor.limit(limit); 

Написать петлю и и вызвать приведенный выше код из цикла и передать значения как pageNum начинается от 1 до п и ограничение зависит от вашего требования. проверьте, что курсор пуст или нет. Если пустой, пропустите цикл, если не продолжить вызов указанной базы кода.

Надеюсь, это будет полезно.

Смежные вопросы