Игнорировать знаки препинания в поисковом индексе в Mongoose - PullRequest
0 голосов
/ 29 марта 2020

У меня есть схема, написанная на машинописном тексте с использованием Mon goose, например:

export const ModelSchema = new Schema({
    title: {
        type: String,
        required: 'title'
    }
})

ModelSchema({ title: 1 }, { collation: { locale: 'en_US', strength: 1 }})

И при выполнении поиска я хочу игнорировать знаки препинания. В данном конкретном случае я хочу, чтобы поиск по «вещам Евы» совпадал с «вещами Евы» и «вещами Евы» (обратите внимание на разницу в одинарных кавычках / апострофах).

К сожалению, вышеприведенное не кажется работать на меня. Я также пробовал варианты конфигурации сортировки, включая добавление полей alternate: 'shifted', maxVariable: 'punct', но не повезло.

Я также пытался установить параметры сортировки в точке поиска, например,

        Collection.find(
            queryJson,
            projectionJson,
            { limit: 100 }, (err, results) => {
                if (err) {
                    res.send(err)
                }
                else {
                    res.json(recipes)
                }
            })
            .collation({ locale: "en_US", strength: 1, alternate: "shifted", maxVariable: 'punct' })

Но опять не повезло. Кто-нибудь знает, что я здесь не так делаю?

К сожалению, использование индекса text для этого поля не вариант, так как у меня уже есть этот набор для другого поля.

...