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