2011-12-15 26 views
1

私は、ユーザーがテーブルに「ルール」を保存できる設定をしており、新しい製品とそれらのルールを照合することができます。Mysql検索エンジン

たとえば、「赤いトマト」という名前のルールを保存することができます。また、「赤いトマト」という新しい製品を作成すると、システムは自動的にルールを見つけ、赤トマト 'のルールを新製品に追加しました。現時点で

が、これは超簡単で、次のようにクエリを介して行わ:

SELECT * FROM (`rules`) WHERE `rule` like '%red tomato%' LIMIT 1 

が、私は次のステップにこれを取ると、ユーザーに検索がどのように、より柔軟性を提供したいと思います実行されます。たとえば、「トマト」というルールを作成したいとします。これは、「トマト」、「赤トマト」または「緑トマト」のいずれかの検索用語と一致します。

これにはどのような方法が最適でしょうか?

答えて

0

私は、Luceneのようなものがリレーショナルデータベースよりもこのタスクに適していると思います。

+0

solr多分?はるかに簡単に – malletjo

+0

Leceneまたはsolrはオプションではありません。これは非常に小規模であり、100%PHP mysqlソリューションである必要があります – JonoB

+0

しかし、solrはLuceneに基づいています.... – duffymo

1

タクソノミを実装しようとしているように思えますし、製品が関連付けられているアイテムに基づいて処理が実行されているようです。

私はあなたが今どのようなシステムを持っているかわからないので、何かをお勧めするのは難しいです。 Drupalはタクソノミーが非常に優れており、コンテンツアイテム(商品)用に作成したタクソノミーと統合できるルールシステムがすでに構築されていることがわかります

カスタムルートの場合は、CodeIgniter 、それははるかにカスタマイズ可能になります。

あなたが今作業していることを説明するとかなり役に立ちますが、より具体的な回答が可能になります。

0

あなたは何をしようとしていますか、トークン辞書を実装し、ルールをトークン化することで実行できます。そうすれば、製品名のトークンと各ルールトークンを比較した後で、製品とルール間の関連付けを格納するテーブルを作成することができます。