2010-09-24 11 views
1

Je travaille sur un site mobile qui vous permet de rechercher des balises d'une collection d'articles MongoDB.MongoDB C# Connexion Résultats de recherche

Fondamentalement, chaque objet d'article possède une propriété de balises, qui stocke un tableau de chaînes de balises. La recherche fonctionne correctement, mais je souhaite également ajouter la journalisation aux recherches.

La raison en est que je veux voir ce que les visiteurs recherchent et quels résultats ils obtiennent afin d'optimiser les tags.

Par exemple, si l'utilisateur entre l'étiquette épicerie, je veux enregistrer les résultats de la requête.

J'espère que ma question est claire. Je vous remercie!

Répondre

1

Vous ne pouvez pas optimiser quelque chose sans mesurer. Vous devrez être en mesure de comparer les nouveaux résultats avec les anciens résultats. Donc, vous devrez enregistrer un instantané de toutes les informations crucial pour une requête de recherche. Cela comprend évidemment les termes de recherche lui-même, mais aussi un instantané précis du résultat.

Vous pouvez créer des instantanés de produits entiers, mais il est probablement plus efficace de sauvegarder uniquement les informations impliquées dans la détermination des résultats de la recherche. Dans votre cas, ce sont les balises d'article, mais peut-être aussi la description de l'article si cela est utilisé par votre moteur de recherche. Après chaque requête de recherche, vous devrez créer un document semblable à celui-ci, et l'enregistrer dans une collection searchLog dans MongoDB.

{ 
    query: "search terms", 
    timestamp: new Date(), // time of the search 
    results: [ // array of articles in the search result 
    { 
     articleId: 123, // _id of the original article 
     name: "Lettuce", // name of the article, for easier analysis 
     tags: [ "grocery", "lettuce" ] // snapshot of the article tags 
     // snapshots of other article properties, if relevant 
    }, 
    { 
     articleId: 456, 
     name: "Bananas", 
     tags: [ "fruit", "banana", "yellow" ] 
    } 
    ] 
} 
+0

Merci! C'est exactement ce que j'ai fait. Je viens de sauvegarder le terme de recherche et les instantanés du jeu de résultats pertinent. Dans mon cas, je viens de sauvegarder l'identifiant de l'article. – Abe