0

スマート検索機能の実装について質問があります。たとえば、さまざまな電子メール アプリケーションの「スマート メールボックス」のようなものを考えてみましょう。データ (電子メール) がデータベースに保存されており、クエリが作成されるフィールドに応じて、エンド ユーザーにさまざまなオプションを提示するとします。現時点では、主語、動詞、目的語のアプローチを想定しましょう…</p>

たとえば、次のものがあるとします。

件名: メッセージ、to_address、from_address、件名、date_received
動詞: 含む、does_not_contain、is_equal_to、greater_than、
less_than


さて、明確でない場合に備えて、後で使用するためにスマート検索/メールボックスの基準を保存 (および後で取得/提示) するためのテーブル構造が必要です (ただし、何らかの外部 XML 風ファイルに反対しているわけではありません)。 . 例として、SVO を使用すると、「2 つの日付の間の日付」のクエリを簡単に保存して再構築できます。単純に「日付より大きい」と「日付より小さい」を使用します。しかし、同じスマート検索で、別の基準で「間」を OR 演算したい場合はどうなるでしょうか。手に負えなくなる可能性があることがわかります-必ずしもクエリの作成ではありません(かなり単純化されているため)。

おそらく、もっと細かいレベルで考える必要があります。おそらく、ALL OR NOTHING タイプのスマート検索にするのではなく、各エントリに対して個別に AND または OR をユーザーが選択できるようにする必要があるかもしれません (つまり、MATCH ALL または MATCH ANY の代わりに、単純に選択できるようにする必要があります。ヒドラに変えたくない)。

任意の入力をいただければ幸いです。質問が少し支離滅裂でしたら申し訳ありません。遅いです、そして私は私の脳が乾杯しています。

一番。

4

1 に答える 1

0

これを行う最も簡単な方法は、すべてのメールボックス情報をSQLデータベースに格納し、「主語動詞オブジェクト」をSQLの「where」句に変換することです。次に、SQLクエリコンパイラに作業を任せます。

これは、AppleがMail.appで行っていることです。これは、sqliteデータベースを使用してすべてのメッセージヘッダー情報を格納します。

于 2010-06-06T07:44:50.193 に答える