sql >> データベース >  >> NoSQL >> MongoDB

MongoDBでの正規表現文字列検索を高速化

    1つの可能性は、配列要素として役立つと思われるすべてのバリアントを格納することですが、それが可能かどうかはわかりません!

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

    また、各単語に1000語のフォームを保存しないことをお勧めしますが、これを逆にして、ドキュメントを小さくします。ドキュメントが小さいほど、検索ごとにMongoDBがメモリに読み込む必要が少なくなります(もちろん、検索条件でフルスキャンが必要ない場合):

    {
        "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"
    }
    

    また、MongoDBと同じように全表スキャンを実行する必要があるため、ランダムな単語形式の検索でMySQLのパフォーマンスが向上するかどうかも疑問です。クエリキャッシュを使用できるのはクエリキャッシュだけですが、もちろん、アプリケーションの検索UI/APIに簡単に組み込むことができます。



    1. JavascriptとMongodbを使用して時系列データをリサンプリングする

    2. mongodbにcertain(String)値を含むコレクションのすべてのキーを取得する方法

    3. javaからmongodbでサーバーjs関数を呼び出す

    4. MongoDBでの埋め込みドキュメントのフィルタリング