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

mongodb近似文字列マッチング

    テキスト検索 MongoDBの機能(2.6以降)には、ファジー/部分的な文字列照合のための組み込み機能はありません。お気づきのとおり、このユースケースは現在、基本的なブール演算子と単語/フレーズのマッチングによる言語とステミングのサポートに重点を置いています。

    要件と「効率的」な認定方法(速度、ストレージ、開発者の時間、必要なインフラストラクチャなど)に応じて、あいまい一致を検討するためのいくつかの可能なアプローチがあります。

    • すぐに利用できるsoundalikeおよび類似性アルゴリズムのいくつかを使用して、アプリケーションロジックにファジー/部分マッチングのサポートを実装します。このアプローチの利点には、インフラストラクチャを追加する必要がなく、要件に合わせて厳密に調整できることが含まれます。

      より詳細な例については、次を参照してください:効率的MongoDBでのファジーおよびパーシャルマッチングの手法

    • より高度な検索機能を提供する外部検索ツールと統合します。これにより、デプロイが複雑になり、先行入力だけではやり過ぎになる可能性がありますが、アプリケーションの他の場所に組み込みたい他の検索機能(「このような」、単語の近接性、ファセット検索など)が見つかる場合があります。

      たとえば、次を参照してください:実行方法あいまい-MongoコネクタとElasticSearchとのマッチング 。注:ElasticSearchのファジークエリ レーベンシュタイン距離に基づいています。

    • Twitterのオープンソース typeahead.jsのようなオートコンプリートライブラリを使用します 、提案エンジンとクエリ/キャッシングAPIが含まれています。 Typeaheadは、実際には他のバックエンドアプローチのいずれかを補完するものであり、その(オプションの)提案エンジンブラッドハウンド ローカルストレージでのデータのプリフェッチとキャッシュをサポートします。




    1. Node.jsは、2つのマングースの検索が終了したことを検出します

    2. Morphia List <Map <String、Object>>> return埋め込み要素は、検索操作でDBObjectではありません

    3. mongo PHPアプリエラー:致命的なエラー:キャッチされない例外'MongoException'とメッセージ''。 'キーでは許可されていません

    4. groovy / grailsからmongodbをクエリする方法は?