MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Wyszukiwanie pełnotekstowe z wagą w manguście

Tak, możesz użyć wyszukiwania pełnotekstowego w Mongoose>=3.8.9. Po pierwsze, kolekcja może mieć co najwyżej jeden indeks tekstowy (patrz doc). Tak więc, aby zdefiniować indeks tekstowy dla kilku pól, potrzebujesz indeksu złożonego:

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

Teraz możesz używać $text operator zapytania w ten sposób:

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

Spowoduje to również posortowanie wyników według oceny trafności.

Jeśli chodzi o wagi, możesz spróbować przekazać obiekt opcji wag do index() metoda (w której definiujesz indeks złożony) (działa co najmniej z wersją 4.0.1 mangusty):

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. arrayFilters w mongodb

  2. Percona Live Frankfurt 2018 - Podsumowanie wydarzenia i nasze sesje

  3. MongoDB $strcasecmp

  4. Wstaw słownik do MongoDB za pomocą sterownika c#

  5. Mongodb zlicza wszystkie elementy tablicy we wszystkich obiektach spełniających kryteria