2012-01-03 13 views
2

私はセマンティックウェブ検索にはほとんど問題がありません。私はPHP/MySQLで "semantic"検索エンジンとして動作するアプリケーションを構築しています。この問題は一般的に難しいですが、私の状況はやや簡単です。私は自分のウェブサイト上のデータと、データベースに追加するデータだけを検索する必要があります。類似検索と意味検索

アイデアは、somoeneが食品を検索するので、ピザが食品であるため、単語のピザを含むドキュメントも食品ドキュメントの横に戻ります。私のウェブサイトは本当に具体的なものになるので、この関係をモデル化することは可能です(少なくとも私はそうだと思いますが)。最初の問題は、このデータをデータベースに保存する方法を知らないということです。この関係は、N:M関係になり、実際には柔軟性がなければならないため、ウェブサイト上のすべての検索に使用されます。ほとんどの抽象的なものから最も具体的なものまで、「食物 - >ピザ - >マーゲリータ」のような「木のような」ものになるだけでなく、食品 - >菜食主義 - >マーゲリータです。私のアイデアは、セマンティックWebからトリプルを使用し、すべての関係を推論されたトリプルとして保存することです。

次の問題は、ユーザーデータの入力です。ユーザーがドキュメントに「タグ」を追加できるようになり、私のアプリはそれらを自分のトリプルに接続しているはずです。だから、ユーザーがピザを入力した場合、まず私のアプリはすべて知られているピザを提案しなければなりません。もし彼がマーゲリータを選択すれば、彼のドキュメントはピザマゲリータに接続されますが、未知のピザを追加すれば、 (より高い抽象化)のみ。

その後、すべての検索クエリは、私のトリプルモデルと検索関連ドキュメントで最もよく一致するものを検索します。それは良い考えですか?

私の質問は、どのように最初のアイデアかいくつかの最初のプッシュする必要があります、このアプリケーションを設計するには本当に一般的です。

この問題を解決する方法をお考えいただきありがとうございます。

迅速な方法の一つは、あなたがフルテキストとmorphology-を行うことができるようにどこかのカテゴリIDに接続され、および/またはドキュメントのセット 「 食品ピザマルゲリータ」など「 食品ピザ何かを」フレーズ維持するだろう
+0

のような外部の全文検索エンジンを使用して行うことができるなぜあなたはMySQLを使用しますか?トリプルストアがうまくフィットするかもしれません。 –

+0

まあ、それはMySQLである必要はありませんが、私はいくつかの高速クエリストレージを持っている+それは私が大量になると予想しているユーザー入力データと私のトリプルを接続する必要がありますので、私は従来のリレーショナルデータベースがより高速であると信じているからです。 –

答えて