sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB fuldtekstsøgning vs Lucene?

Uden at gå ind i et langt emne, som sandsynligvis ikke ville være egnet til et programmeringsforum, vil jeg forsøge at dække dette grundlæggende, men alligevel forsøge at dække punkterne.

Den vigtigste ting at overveje, når du hopper ind i en bred sammenligning, er dette:"Hvordan klarer 'XYZ' relationel databasemotor fuldtekstsøgning op mod Lucene" .

Så hvis du tænker på det og har erfaring med de indbyggede "fuldtekst"-funktioner i disse produkter, så er det de æbler, du bør sammenligne med MongoDB "fuld tekst" æbler.

Kort sagt tilbyder MongoDB grundlæggende fuldtekst-funktioner, der ikke er meget anderledes end dem, der findes i relationelle produkter. Som nævnt i a:) , faciliteterne er nye, men bedre end hvad der var før, hvilket ikke var noget.

b:) , Lucene og derivater/modparter (Solr / ElasticSearch osv.) bør betragtes som et helt andet dyr. Hvor du har brug for avanceret tokenisering og stemming, indbyggede faciliteter til "Mere som dette" og facettællinger på søgninger. I disse tilfælde er det separate produkt en påkrævet nødvendighed.

Selvfølgelig er der flere løsninger til indeksering af data fra MongoDB-butikker i Lucene osv., og selv at tilpasse denne proces er ikke svært. Men det er at opretholde en anden bevægelig del i din infrastruktur.

Så jeg ser ikke dette som et behov for at sammenligne MongoDB tekstsøgning med Lucene, fordi i sidste ende de eksisterer for at gøre forskellige ting, det er bare et spørgsmål om, hvad du har brug for til din ansøgning. Vælg den løsning, der er bedst for dig.

Den eneste ting at tilføje er, at Lucene (og afledte) familien er fantastiske produkter. Vig ikke tilbage fra at give dem en chance, i det mindste for at evaluere. Pointen fra før er, at der er meget mere kraft der end nogen "Standard Database Text Search". Desuden er admin og indlæringskurven generelt "ikke så hårde, som du tror". Har en leg, det kan være værd at implementere.



  1. Hvordan kan jeg løse Kunne ikke opsætte sockets under opstart, når jeg kører mongodb server?

  2. Distinct() kommando brugt med skip() og limit()

  3. Upsert Array Elements matchende kriterier i et MongoDB-dokument?

  4. Omdøb felt af kompleks type, der er placeret i array