sql >> Databáze >  >> NoSQL >> MongoDB

Fulltextové vyhledávání s váhou v mangustách

Ano, můžete použít fulltextové vyhledávání v Mongoose>=3.8.9. Za prvé, kolekce může mít maximálně jeden textový index (viz dokumenty). Chcete-li tedy definovat textový index pro několik polí, potřebujete složený index:

schema.index({ animal: 'text', color: 'text', pattern: 'text', size: 'text' });

Nyní můžete použít $text dotazovací operátor takto:

Model
    .find(
        { $text : { $search : "text to look for" } }, 
        { score : { $meta: "textScore" } }
    )
    .sort({ score : { $meta : 'textScore' } })
    .exec(function(err, results) {
        // callback
    });

Tím se také seřadí výsledky podle skóre relevance.

Pokud jde o váhy, můžete zkusit předat objekt voleb vah do index() metoda (kde definujete složený index) (pracuje alespoň s verzí 4.0.1 mongoose):

schema.index({ animal: 'text', color: 'text', pattern: 'text', size: 'text' }, {name: 'My text index', weights: {animal: 10, color: 4, pattern: 2, size: 1}});


  1. Nejrychlejší MongoDB na Azure!

  2. Jak nakonfiguruji JedisConnectionFactory pro použití SSL, aby se mi nezobrazovala chyba:JedisDataException:ERR nešifrované připojení je zakázáno?

  3. Existuje nějaký způsob, jak implementovat stránkování v jarním webfluxu a jarních datech reaktivních

  4. Ukládání numpy pole v mongodb