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

přibližná shoda řetězců mongodb

textové vyhledávání funkce v MongoDB (jako ve verzi 2.6) nemá žádné vestavěné funkce pro fuzzy/částečné porovnávání řetězců. Jak jste si všimli, případ použití se v současné době zaměřuje na podporu jazyka a stemming se základními booleovskými operátory a párováním slov a frází.

Existuje několik možných přístupů, které je třeba zvážit pro fuzzy párování v závislosti na vašich požadavcích a na tom, jak chcete kvalifikovat jako „efektivní“ (rychlost, úložiště, čas vývojáře, požadovaná infrastruktura atd.):

  • Implementujte podporu fuzzy/částečné shody ve své aplikační logice pomocí některých snadno dostupných algoritmů zvukové podobnosti a podobnosti. Mezi výhody tohoto přístupu patří, že nemusíte přidávat žádnou další infrastrukturu a je možné přesně vyladit přizpůsobení vašim požadavkům.

    Některé podrobnější příklady viz:Efektivní Techniky pro fuzzy a částečné párování v MongoDB .

  • Integrace s externím vyhledávacím nástrojem, který poskytuje pokročilejší vyhledávací funkce. To přidává určitou složitost k vašemu nasazení a je pravděpodobně příliš náročné pouze pro psaní napřed, ale můžete najít další funkce vyhledávání, které byste chtěli začlenit jinde ve své aplikaci (např. „takto“, blízkost slov, vyhledávání s fazetou, ..).

    Viz například:Jak postupovat Fuzzy-Matching s Mongo Connector a Elastic Search . Poznámka:fuzzy dotaz společnosti ElasticSearch je založena na Levenshteinově vzdálenosti.

  • Použijte knihovnu automatického doplňování, jako je open source Twitter typeahead.js , který zahrnuje modul návrhů a rozhraní API pro dotazy/ukládání do mezipaměti. Typeahead ve skutečnosti doplňuje jakýkoli jiný backendový přístup a jeho (volitelný) návrhový engine Bloodhound podporuje předběžné načítání i ukládání dat do mezipaměti v místním úložišti.




  1. MongoDB vs MySQL NoSQL - Proč je Mongo lepší

  2. Spring-Mongo-Data Update umožňuje pouze jeden poziční argument?

  3. počkejte, až všechny sliby skončí v nodejs s bluebird

  4. Jak přejmenujete databázi MongoDB?