Sviluppo di un algoritmo di ricerca

1

Voglio creare un motore di ricerca di base e voglio che tu mi dia qualche idea su come filtrare i risultati migliori per i miei visitatori.

Ho tre campi relativi a un prodotto che l'utente può cercare in:

  1. Titolo
  2. Categoria
  3. Descrizione

Mi sono imbattuto in queste idee e ti chiedo di criticarle o aggiungerle con competenza.

  1. Se il termine di ricerca si verifica in tutti e tre i campi dovrebbe essere tra i primi risultati.
  2. Se è in due dei campi è inferiore ai risultati di 1.
  3. Combina la quantità di occorrenze e genera un valore in percentuale. Ad esempio se in tutti i campi insieme il termine orologio è apparso 50 volte e in tutti i campi insieme ci sono 200 parole, quindi il valore percentuale è 50/200 * 100 = 25%. Un'altra voce di prodotto ammonta al 20%, quindi il prodotto uno con il 25% è elencato prima del prodotto due con il 20%.
posta Zurechtweiser 29.09.2012 - 16:51
fonte

1 risposta

4

In realtà stai cercando un "ordine dei risultati" piuttosto che un algoritmo di ricerca.

Ad ogni modo, vorrei classificare i risultati usando un meccanismo a punti. Questo rende più facile da gestire, più facile da mantenere e migliorare se lo si desidera. Inoltre, ti aiuta anche a gestire il caso di più parole chiave di ricerca. Ecco come funziona:

Per ogni parola chiave che l'utente ha dato:

  • indica a punti per l'aspetto nel titolo
  • indica b punti per l'aspetto nella categoria
  • indica c punti per occorrenza nella descrizione.

Somma la quantità totale di punti per ciascuna parola chiave.

Ordina l'elenco di elementi per punti, dal più alto al più basso.

Giocando con il parametro a , b e c cambierai l'ordine risultante. Puoi quindi mettere a punto il tuo algoritmo consentendo all'utente di modificare le sue preferenze (e aggiornando i parametri in background) oppure puoi testare tu stesso il tuo test e determinare quali sono i parametri migliori.

    
risposta data 29.09.2012 - 17:56
fonte

Leggi altre domande sui tag