Как реализовать хранение / поиск функций smart-search / mailbox? - PullRequest
0 голосов
/ 31 мая 2010

У меня есть вопрос относительно реализации функций интеллектуального поиска. Например, рассмотрим что-то вроде «умных почтовых ящиков» в различных почтовых приложениях. Предположим, что ваши данные (электронные письма) хранятся в базе данных, и, в зависимости от поля, для которого будет создан запрос, вы предоставляете конечному пользователю различные параметры. На данный момент давайте предположим, что субъект, глагол, объект подход ...

Например, скажем, у вас есть следующее:

ПРЕДМЕТЫ: сообщение, to_address, from_address, тема, date_received
VERBs: содержит, не_содержит, is_equal_to, больше_ меньше, меньше_100 * Объекты: ???????


Теперь, если неясно, я хочу, чтобы структура таблицы (хотя я не был против какого-то внешнего XMLesque-файла) сохраняла (и позже извлекала / представляла) мои критерии для интеллектуального поиска / почтовых ящиков для последующего использования. , В качестве примера, используя SVO, я мог бы легко сохранить, а затем восстановить запрос «дата между двумя датами» - просто использовать «дата больше чем« И »дата меньше». Тем не менее, что если в том же интеллектуальном поиске я хотел бы получить «между» ИЛИ с другим критерием? Вы можете видеть, что это может выйти из-под контроля - не обязательно при создании запроса (поскольку это довольно упрощенно), но в механизме представления и хранения опций.

Возможно, мне нужно больше думать на более детальном уровне. Возможно, мне нужно просто разрешить пользователю выбирать И или ИЛИ для каждой записи независимо, вместо того, чтобы делать умный поиск типа ВСЕ ИЛИ НИЧЕГО (т. Е. Вместо МАТЧ ВСЕГО или МАТЧИ ЛЮБОГО, мне нужно просто разрешить им выбирать - я просто не хочу, чтобы это превратилось в гидру).

Любой вклад будет наиболее ценным. Приношу свои извинения, если вопрос немного противоречив. Уже поздно, и мой мозг тост.

Best.

1 Ответ

0 голосов
/ 06 июня 2010

Самый простой способ сделать это - сохранить всю информацию о вашем почтовом ящике в базе данных SQL и перевести ваши «объекты глагола субъекта» в выражения SQL «где». Затем вы позволяете компилятору SQL-запросов выполнить всю работу за вас.

Это то, что Apple делает в Mail.app, который использует базу данных sqlite для хранения всей информации заголовка сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...