Как можно получить мелкозернистый поиск с помощью mongodb без использования внешних двигателей? Возьмите этот объект как пример { жанр: 'комедия', страниц: 380, год: 2013, бестселлера: правда, автор: 'John Doe' }поиск по нескольким параметрам с помощью mongodb
Это ищется следующим:
db.books.find({
pages: { '>': 100 },
year: { '>': 2000 },
bestseller: true,
author: "John Doe"
});
Довольно простой до сих пор. Теперь предположим, что в документе есть немного больше значений, и что я делаю более изысканные запросы и У меня есть довольно большая коллекция.
Первое, что я хотел бы сделать, это создать индексы. Но как это работает? Я прочитал, что пересечение индекса, как определено здесь https://jira.mongodb.org/browse/SERVER-3071, не выполнимо. Это означает, что если я установлю индекс на «год» и «страницы», я не буду оптимизировать операции И в результатах поиска.
Итак, как оптимизировать поиск для получения множества параметров?
Заранее спасибо.
спасибо. Однако приведенный мной код был всего лишь примером. Знаете ли вы, есть ли какие-либо инструменты, которые могут помочь в поиске частых запросов, которые могут помочь найти лучшие совпадения для создания индексов? –
Привет, Джон, я не знаю никаких инструментов лично, кажется, что большинство людей выясняют это вручную, используя профилировщик, чтобы найти, какие запросы выполняются медленно, а затем оптимизировать их индексы для этих конкретных запросов. – ACE