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

Jak znaleźć podobieństwo w polu dokumentu MongoDB?

Jeśli chcesz obliczyć podobieństwo tekstu w about jednym ze sposobów na osiągnięcie tego jest użycie indeksu tekstowego .

Na przykład (w mongo powłoki), jeśli utworzysz indeks tekstowy w about pole:

db.collection.createIndex({about: 'text'})

możesz wykonać zapytanie, takie jak (przykład zaczerpnięty z https://docs.mongodb.com/manual/reference/operator/query/text/#sort-by-text-search-score ):

db.collection.find({$text: {$search: 'similarity in comparison'}}, {score: {$meta: 'textScore'}}).sort({score: {$meta: 'textScore'}})

W przykładowych dokumentach zapytanie powinno zwrócić coś takiego:

{
  "_id": "foobar1",
  "about": "similarity in comparison",
  "score": 1.5
}
{
  "_id": "foobar2",
  "about": "perfect similarity in comparison",
  "score": 1.3333333333333333
}
{
  "_id": "foobar3",
  "about": "partial similarity",
  "score": 0.75
}

które są sortowane według malejącego wyniku podobieństwa. Pamiętaj, że w przeciwieństwie do przykładowego wyniku, dokument foobar4 nie jest zwracany, ponieważ żadne z zapytanych słów nie występuje w foobar4 .

Indeksy tekstowe są uważane za specjalny typ indeksu w MongoDB, a zatem mają określone zasady dotyczące jego użycia. Aby uzyskać więcej informacji, zobacz:




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Usuń duplikaty z MongoDB

  2. Jak użyć pymongo, aby połączyć się z istniejącą kolekcją dokumentów/bazą danych?

  3. Jak sortować z sumą 2 pól w MongoDB

  4. Jak zaktualizować każdą wartość za pomocą jednego zapytania w mongodb

  5. Symbol wieloznaczny mongodb pasuje do wszystkich wartości dla określonego klucza