Domanda

Ho una domanda per quanto riguarda l'attuazione delle funzioni di smart-ricerca. Si consideri ad esempio qualcosa come "caselle postali intelligenti" in varie applicazioni di posta elettronica. Supponiamo di avere i dati (e-mail) memorizzati in un database e, a seconda del settore per il quale verrà creata la query, si presentano diverse opzioni per l'utente finale. Al momento supponiamo che il soggetto, verbo, l'approccio Object ...

Per esempio, supponiamo di avere la seguente:

soggetti: il messaggio, to_address, FROM_ADDRESS, soggetto,
date_received Verbi: contiene, does_not_contain, is_equal_to, greater_than, less_than
OGGETTI: ???????
Ora, nel caso in cui non è chiaro, voglio una struttura di tabella (anche se io non sono contrario a un file XMLesque esterno di qualche tipo) per memorizzare (e poi recuperare / presente) i miei criteri per le ricerche intelligenti / caselle di posta per un uso successivo . A titolo di esempio, utilizzando SVO potrei facilmente memorizzare poi ricostruire una query per "data tra le due date" - semplicemente utilizzare "data maggiore di" e "Data meno". Tuttavia, quello che se, nella stessa ricerca intelligente, volevo un "tra" OR ad un altro criterio? Si può vedere che potrebbe sfuggire di mano -. Non necessariamente nella creazione di query (come quello è piuttosto semplicistico), ma nel meccanismo di presentazione opzione e stoccaggio

Forse ho bisogno di pensare di più a un livello più granulare. Forse ho bisogno di permettere semplicemente all'utente di selezionare AND o OR per ogni voce in modo indipendente, invece di farne un tutto o tipo NIENTE ricerca intelligente (cioè al posto di hanno tutte o Trova ogni, ho bisogno di permettere semplicemente loro di selezionare - ho solo non voglio che si trasformi in un Hydra).

Qualsiasi input sarebbe più apprezzati. Le mie scuse se la questione è un po 'incoerente. E 'tardi, e io il mio cervello è pane tostato.

Best.

È stato utile?

Soluzione

Il modo più semplice per farlo è quello di memorizzare tutte le tue informazioni cassetta postale in un database SQL e tradurre il vostro "soggetto verbo oggetti" in SQL "dove" clausole. Poi si lascia che la query SQL compilatore fare il lavoro per voi.

Questo è ciò che Apple fa in Mail.app, che utilizza un database SQLite per memorizzare tutte le informazioni di intestazione del messaggio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top