Я не вижу никакой причины использовать ElasticSearch в сочетании с MongoDb, просто используйте ElasticSearch в качестве отдельного хранилища документов для документов, которые необходимо искать. И да, вы можете даже как целые БД. Конечно, это зависит от модели вашего домена и других факторов.
Если вам не нужны запаздывание, нечеткий поиск, сложный поиск по шаблону, вы можете выполнить поиск с помощью mongoDb. Когда новый документ вставлен, разделите его на слова в нижнем регистре и добавьте, например, в массив «words». Позже вы можете выполнить поисковый запрос по этому массиву с помощью regex
. Вы не можете использовать опцию I
(игнорировать регистр) в этом регулярном выражении, и вы можете искать только LIKE%
подстановочный знак (или без подстановочного знака), иначе поиск не будет использовать индекс mongoDb.
Еще один вариант - вы можете попытаться найти river для mongoDb
Другой вариант - это использовать Lucene
, если вы используете Java. Возможно, вы сможете расширить класс Directory
таким образом, чтобы Lucene сохранял индекс в MongoDb вместо файловой системы или ОЗУ. Я не проводил никаких исследований в этой области, но думаю, что это возможно