Как проиндексировать коллекцию со строками на разных языках?
Допустим, есть коллекция User. Есть у него поле name. У одного пользователя name: 'Vasya', а у второго name: ' Вася'.
Ставлю индекс text на поле name и монго ругается.
Что можно придумать?
Индекс нужен, чтобы можно было искать совпадения по символам
Можно,конечно, для этого воспользоваться $regex, чтобы искать совпадения по символам, но не думаю, что это будет быстро в долгосрочной перспективе.
ChairfaceChippendale, Index build failed. Collection test.words caused by :: language override unsupported: ko' on server
На корейский язык ругается. Там поля 50 на 50 английский\корейский и нужно что-то с этим сделать. В то же время, корейский язык по алфавиту бд сортирует без проблем, значит понимает :)
ChairfaceChippendale, Там разные слова на корейском и разные на английском, которые друг с другом никак не связаны. лежат они в одной коллекции под одним ключом, например:
[
{
foo: 'hello',
bar: 'some info',
baz: 'lala',
},
{
foo: 'дерево',
bar: 'some info',
baz: 'lalalaaa'
},
{
foo: '클라우드',
bar: 'some info',
baz: 'lalalo'
},
]
Например, придёт в запрос "де", надо найти все совпадения с "де" в foo и вытащить. Придёт hel, надо также найти все совпадения с hel в foo
Завтра туда может ещё какой-то язык добавится. надо придумать, либо как это быстро можно достать, ежели коллекция эта будет гигантская очень, либо придумать, как это разрезать на более мелкие коллекции, если такое возможно.
А не может быть проблема в том, что у вас в каком-то документе в этой коллекции язык указан не ko, а ko' — с одинарной кавычкой? Просто у вас в тексте ошибки есть ko с кавычкой, а монго вроде в таком сообщении не должна вставлять никаких одинарных кавычек.
nowm, На самом деле там вторая ковычка в начале текста ошибки, просто я её упустил
Command failed with error 17262 (Location17262): 'Index build failed: 6a9ce3f0-442b-44f2-a95f-da008be55e00: Collection test.words ( 7899c4bf-0a6c-4f5f-a9ad-9f979d5df104 ) :: caused by :: language override unsupported: ko' on server