Strutture di indicizzazione dei dati adatte a grandi applicazioni E-Commerce

6

abbiamo scritto e manteniamo ancora una grande applicazione di E-Commerce. La nostra lista delle caratteristiche ricorda ciò che ci si aspetterebbe dalla maggior parte dei negozi. Vorremmo migliorare alcune delle nostre funzioni e ora la funzionalità di ricerca / elenco di suggerimenti (inserisci alcune lettere, viene visualizzato un elenco di suggerimenti di JScripted) ha attirato la nostra attenzione.

Attualmente, utilizziamo il link . Ha alcuni inconvenienti. In primo luogo, non è in realtà la soluzione giusta. È stato creato per indicizzare i documenti, non cambiando mai i dati in una granularità di cui avrebbe bisogno un'applicazione di E-Commerce. In secondo luogo, il carico sul database è significativo quando reindicizziamo tutti i dati ogni notte.

Vorremmo un framework progettato per l'indicizzazione dei dati del database, che può aggiungere all'indice facilmente e senza molto carico, in grado di fornire rapidamente le modifiche dei dati nel backoffice al frontend senza molto carico e ritardo.

Sono consapevole del fatto che Xapian è Open Source e persino Software Libero, quindi potremmo adattarlo alle nostre esigenze se decidessimo di investire il tempo e la manodopera. Ma dare una rapida occhiata in giro per una soluzione più adatta sembra equa, vero?

Oh, e anche le applicazioni commerciali vanno bene. FOSS non è richiesto.

    
posta Dabu 27.09.2011 - 11:00
fonte

2 risposte

2

Abbiamo ESATTAMENTE le stesse esigenze che stai descrivendo. Siamo un negozio di pitone ... vendiamo circa 300.000 articoli unici, quindi avevamo bisogno di aggiornamenti rapidi. Dopo aver provato Xapian, ho deciso di non farlo. Quello che abbiamo finito è stato PyLucene - abbiamo un server che ricostruisce costantemente gli indici di ricerca e sostituisce periodicamente le copie degli indici di ricerca di sola lettura. Quando puoi avere una copia locale sui tuoi server dell'indice di ricerca, rende le cose incredibilmente veloci. Il trasporto del database consiste semplicemente nella copia dei file gzip sul disco.

In realtà abbiamo parlato con diverse aziende più grandi e abbiamo ricevuto qualche consiglio da loro: sembrava la soluzione giusta. Se stai cercando un motore FTS aggiornato in tempo reale, guarderei TSEARCH2 e Postgres, altrimenti Lucene o PyLucene sono un'ottima soluzione. Ci vogliono circa 20 secondi per costruire il nostro indice e possiamo ovviamente regolare i nostri pesi e le formule di ricerca con la frequenza che più ci piace.

    
risposta data 13.12.2011 - 03:14
fonte
0

Dai un'occhiata a elasticsearch . È un motore di ricerca open source (Apache 2), distribuito, RESTful, costruito su Apache Lucene.

Viene utilizzato in produzione per grandi progetti e numerosi vantaggi rispetto ad altre soluzioni di ricerca, in particolare con indicizzazione e scalabilità in tempo reale.

Sono sicuro che ci sono librerie da usare in python.

    
risposta data 11.04.2012 - 08:52
fonte

Leggi altre domande sui tag