1

私はブログを持っていて、solr やエラスティック検索ではなく、mongodb でタイトルを検索したいのですが、たとえば、私はそれらのタイトルを持っています。

wolkswagen
wolkswagen polo
wolkswagen passat

ウォルクスワーゲンでは、ウォルクスワーゲンの歴史があり、ポロとパサートでは、それらの車の定義があり、タイトルをスペースでトークン化しました。「wolkswagen」と入力すると、ポロとパサートが一番上に表示されますが、wolkswagen が一番上に表示されるはずです。

ありがとうございました :)

4

1 に答える 1

3

わかりました、ここには 2 つのオプションがあります。

2.4 で新しい FTS 機能を使用できます: http://architects.dzone.com/articles/mongodb-full-text-search。FTS は実験的であり、文書化が非常に悪いため、これはあなたに合わないかもしれないことに言及する必要があります。デフォルトでは関連性でソートされるため、探している結果のパターンが自動的に適用されます。

結果を取得し、検索ブロック内の各単語との関連性を手動で実際にテストするクライアント処理 (大規模なセットにはお勧めしません) を実行できます。そのためのアルゴリズムについては、次のようなものかもしれません。

  • スペースで区切られたすべての単語を繰り返す
  • 単語の完全性に 0 ~ 1 の値を割り当てます。完全な単語と一致する場合は 1 を割り当てます。
  • これを合計して、各結果の行に戻します。
  • クライアント側の並べ替えを使用して、各結果のスコアで並べ替えます。

残念ながら、あなたのプログラミング言語の知識がなくても、私にできることはほとんどありません。

于 2013-02-03T15:03:42.057 に答える