Вы не можете что-то оптимизировать, не измеряя. Вам нужно будет сравнить новые результаты со старыми результатами. Таким образом, вам нужно будет сохранить моментальный снимок всей информации, имеющий решающее значение для поискового запроса. Это, очевидно, включает в себя сами поисковые термины, а также точный снимок результата.
Вы можете создавать снимки всего продукта, но, вероятно, более эффективно сохранять только информацию, связанную с определением результатов поиска. В вашем случае это теги статьи, но, возможно, также описание статьи, если оно используется вашей поисковой системой.
После каждого поискового запроса вам нужно будет создать документ, аналогичный приведенному ниже, и сохранить его в коллекции searchLog
в 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" ]
}
]
}
Спасибо! Это именно то, что я сделал. Я просто сохраняю поисковый запрос и моментальные снимки соответствующего набора результатов. В моем случае я просто сохранил идентификатор статьи. – Abe