yopp
а, точно там было «positive phrase with multiple words perform AND operation on each word in phrase.»
yopp
а не поиск по префиксу словоформ
Gor
а ты так и не собрался это в апстрим влить?
надо, но я реально выпал ото всюду с текущей загрузкой. тупо нет времени. и еще так пожалуй месяц другой
Gor
сейчас ты оччень вовремя хайлайтнул просто)
yopp
ну что-бы если в одном из полей есть "слово", то поиск по "сло" тоже бы вернул эту запись
ну тогда опция руками пилить текст на токены, складывать их в массив, массив индексировать и дальше делать prefix search
yopp
или использовать другое хранилище
Gor
Надо будет глянуть.
Gor
Есть ссылка?
yopp
Коммершл ?
да, без исходников даже. там какая-то обертка поверх lucene https://docs.atlas.mongodb.com/reference/full-text-search/tutorial/ https://www.mongodb.com/blog/post/getting-started-with-mongodb-atlas-fulltext-search
Gor
Хех. И я догадываюсь почему
yopp
почему?
Gor
Бюджета нет на доработку того огрызка что у них был до конкурентного состояния
yopp
(потому что жадная корпорация конечно же)
yopp
интеграция с внешней балалайкой звучит более разумно, чем пытаться изобрести осла
Gor
Там работы часов по американскому подхожу на пару Лямов минимум ну и на пару лет)
yopp
всегда можно купить
Gor
Что изначально - отставание
yopp
а пара лямов для монги это не то чтоб большие деньги
yopp
у них лицензия 11к за сервер стоит)
Gor
Но почему то люценту крутят
yopp
enterprise edition
Гена
Кстати, такой вопрос. Я интересовался у монгосаппорта сколько стоит у них интерпраз и мне таки не ответили, просились позвонить и узнать сколько у нас нод и тд
yopp
Но почему то люценту крутят
вполне логичное short term решение
Гена
11к это на год?
yopp
за data bearing ноду
Gor
вполне логичное short term решение
Это да. Но ничего не бывает так вечным как временная стремянка
yopp
туда помоему csrs не входит и монгосы
Gor
:)
yopp
это хорошо если позвонять ещё)
yopp
могут и не позвонить
Гена
а что такое data bearing?
Gor
Кстати тоже - купили wiretiger что б решить проблему вроде как да?
Гена
не слышал такое раньше
yopp
Гена
то есть если у нас по 5 нод в каждом шарде то за каждый по 11к в год, даже если у нас две ноды, например, на одном сервере?
Gor
да
Так что да, скорее что то купят. Разработку in house я почему то думаю что не потянут
yopp
Кстати тоже - купили wiretiger что б решить проблему вроде как да?
они осознали что разрабатывать своё хранилище это сложно, долго и вообще требует очень специфичекой экспертизы и купили целиком проект с архитекторами берклидб
yopp
то есть если у нас по 5 нод в каждом шарде то за каждый по 11к в год, даже если у нас две ноды, например, на одном сервере?
не помню точно, нужно ли брать две лицензии, если две монги на одном сервере. они точно считают по серверам, а не по ядрам. но это всё надо у сейлзов узнавать
yopp
надо чтоли начать лицензиями барыжить в рф
Гена
ахахах)) а есть ?)
Gor
лол))
Мне до сих пор после хакатона поощрительную футболку шлют
yopp
нет, но почему бы не стать дистрибьютором
Gor
Надо добивать текущий контракт с клиентом и расслабится . Вон доковылять что хотел в монгу, глядишь вдруг купят?)
yopp
> Thank you for applying for the MongoDB Partner Program.
yopp
4.2.0 (Aug 13) ◦ 4.0.12 (Aug 12) Хочешь выступить с докладом на митапе в Москве? Присылай тему! • Плейграунд для запросов • Документация • Официальные курсы по MongoDB Stable: 4.2.0 ◦ Bugfix: 4.0.12 Legacy: 3.6.14 (Aug 26) ◦ EOL: 3.4.22 (Aug 6, 💀 Jan ‘20) ☠️: 3.2.21 (Dec ’18), 3.0.15 (May ’17)
Red
ну тогда опция руками пилить текст на токены, складывать их в массив, массив индексировать и дальше делать prefix search
угу, встречал такие решения, но оно мне показалось немного неудобным, поэтому и решил спросить тут
yopp
Да, но там поддержка только смены окончаний, а мне хотелось бы поиск по любой части
Прямом по любой части это очень нетривиально и очень вычислительно ёмко, будет требовать огромной избыточности при хранении. Вам нужно вычислить все уникальные последовательности в строке и потом на каждую такую последовательность добавить запись в индексе.
yopp
По префиксу проще
yopp
А какая задача?
Nikita
Ребят, а подскажите плиз, как из монги можно достать набор документов по такому массиву [{lessonId: 1, publication: 1}, {lessonId: 2, publication: 1}] ? сначала был просто массив ID, и запрос был с такой выборкой ['lessonId' => ['$in' => $lessonsIds]] а теперь для каждого lessonsId добавилась publication
Nikita
$elemMatch?
я читал его доку, кажись не подходит )
Dmitriy
я читал его доку, кажись не подходит )
у вас так выглядит документ? https://play.db-ai.co/m/XXkJc5AtYAABLJdW
Nikita
у вас так выглядит документ? https://play.db-ai.co/m/XXkJc5AtYAABLJdW
https://play.db-ai.co/m/XXkKI_HF2wABhoDN выглядит так, но найти нужно не один документ, а несколько
Nikita
аналогом будет вызвать несколько раз findOne({"lessonId": x, "publication": y})
Dmitriy
аналогом будет вызвать несколько раз findOne({"lessonId": x, "publication": y})
может быть что-то в этом духе тогда: https://play.db-ai.co/m/XXkLarkkgAABTHKh
Nikita
уже ближе, но лишние записи всёравно будут попадаться)
Nikita
может вообще нельзя в монге такое сделать и нужно фильтровать на бэке?:С
Dmitriy
с ходу не приходит в голову как отфильтровать такое строгое соответствие силами монги. но если говорить про бэк, то я бы сделал одним запросом, просто бэком надо сформировать запрос вида: {$or: [{lessonId: 1, publication: 1}, {lessonId: 2, publication: 2}, ... {lessonId: N, publication: N}]}
Dmitriy
но это само собой если у вас какое-то разумное количество возможных условий
Dmitriy
тогда сможете получить все одном запросом
yopp
Если вложенные документы то AF с $match + $filter
Nikita
ее, спасибо ребят )
Dmitriy
ребят, а можно как-то в $cond проверить существование поля?