2011-11-08 15 views
0

私はAとを組み合わせた(最も重要から最低まで)マージ検索結果アルゴリズム

  1. 結果を次のように私は結果を優先して2つのメインの文字列のAとB で検索する検索バーを実装しています例えばAのみ

用Bのみ

  • 結果のためのB
  • 結果ので、私は "エジプト" +を検索する場合、 "ピラミッド" 私は私の最初のRESUをしたいです「エジプトのピラミッド」のようなもの、一般的には「ピラミッド」に関するもの、幾何学的な形状などのものが続きます。最後に「エジプト」の結果となります。

    GoogleやBing、私が現在行っているのは、最初に結果セットXを取得し、次にBを検索してポジティブリストを取得し、次にAのみを検索してネガティブリストを取得することです。それらがネガティブリストに存在する場合にはペナルティを与え、ポジティブリストに存在する場合はボーナスを与え、最後にポジティブリストに残ったものをXに加えます。

    十分に良い、私は誰かがこの単純なアルゴリズムやまったく別のアイデアに加えて私を助けることができるかどうか疑問に思っていた

  • +0

    ルックアップ http://stackoverflow.com/questions/4515099/text-indexing-algorithm/4515232#4515232 – Mikos

    答えて

    0

    このようなタスクには、「セット」と呼ばれるものを使用する必要があります。 http://en.wikipedia.org/wiki/Set_%28computer_science%29

    「Egypt」+「Pyramids」を検索する場合は、個々の検索語句ごとに「セット」を作成します。最も重要な結果は、セットの「交差点」と呼ばれるものです(「エジプト」と「ピラミッド」の両方)。

    より低い優先度の結果は、セットの「相対補完物」と呼ばれます。 BにあるAの中にないすべてのものを欲しがっているふりをしてください。これをBのAの相対補数と呼びます。

    ほとんどのプログラミング言語には、最適化されたライブラリ/パッケージが用意されています。