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

Przyspiesz wyszukiwanie ciągów regularnych w MongoDB

Jedną z możliwości byłoby przechowywanie wszystkich wariantów, które Twoim zdaniem mogą być przydatne jako element tablicy — nie jestem jednak pewien, czy jest to możliwe!

    {
        "number" : "pl",
        "surface_form" : "skrejjen",
        "surface_forms: [ "skrej", "skre" ],
        "phonetic" : "'skrɛjjɛn",
        "pattern" : "CCCVCCVC"
    }

Prawdopodobnie sugerowałbym również, aby nie przechowywać 1000 form wyrazowych z każdym słowem, ale odwróć to, aby mieć mniejsze dokumenty. Im mniejsze są twoje dokumenty, tym mniej MongoDB musiałoby wczytać do pamięci przy każdym wyszukiwaniu (oczywiście pod warunkiem, że warunki wyszukiwania nie wymagają pełnego skanowania):

{
    "word": {
        "pos" : "N",
        "lemma" : "skrun",
        "gloss" : "screw",
    },
    "form" : {
        "number" : "sg",
        "surface_form" : "skrun",
        "phonetic" : "ˈskruːn",
        "gender" : "m"
    },
    "source" : "Mayer2013"
}

{
    "word": {
        "pos" : "N",
        "lemma" : "skrun",
        "gloss" : "screw",
    },
    "form" : {
        "number" : "pl",
        "surface_form" : "skrejjen",
        "phonetic" : "'skrɛjjɛn",
        "pattern" : "CCCVCCVC"
    },
    "source" : "Mayer2013"
}

Wątpię również, czy MySQL działałby tutaj lepiej z wyszukiwaniem losowych form słów, ponieważ będzie musiał wykonać pełne skanowanie tabeli, tak jak robiłoby to MongoDB. Jedyną rzeczą, która może pomóc, jest pamięć podręczna zapytań - ale jest to coś, co możesz oczywiście dość łatwo zbudować w interfejsie wyszukiwania/API w swojej aplikacji.



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

  2. Uzyskaj tylko określone pole w MongoDB za pomocą C#

  3. Sterownik Mongodb C# zwraca tylko pasujące dokumenty podrzędne w tablicy

  4. Jak zainicjować bazę danych mongo za pomocą docker-compose?

  5. MongoDB C# Driver - Ignoruj ​​pola podczas wiązania