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

Fuld tekstsøgning i MongoDB giver ikke det forventede resultat for @@@

Tekstsøgning er designet til at indeksere strenge baseret på sprogheuristik . Tekstindeksering involverer to generelle trin:tokenisering (konvertering af en streng til individuelle termer af interesse) efterfulgt af stemming (konvertering af hvert udtryk til en rodform til indeksering baseret på sprogspecifikke regler).

Under tokeniseringstrinnet er visse tegn (f.eks. tegnsætningssymboler såsom @ ) er klassificeret som ordseparatorer (alias afgrænsere ) i stedet for tekstinput og bruges til at adskille den originale streng i termer. Sprogspecifikke stopord (almindelige ord som "den", "er" eller "på" på engelsk) er også udelukket fra et tekstindeks.

Siden din søgesætning @@@ udelukkende består af afgrænsninger, er der ingen tilsvarende indgang i tekstindekset.

Hvis du vil matche generiske strengmønstre, skal du bruge regulære udtryk i stedet for tekstsøgning. For eksempel:db.getCollection('TestCollection').find({field2:/@@@/}) . Bemærk dog forbeholdene vedrørende indeksbrug for regulære udtryk.



  1. MongoDb:Forskel mellem $push/$addtoset

  2. Bruger meteor mongo på localhost men med ekstern database

  3. Sådan får du brugeroplysninger fra mongodb i node.js

  4. Trin til at installere MongoDB på Amazon Linux