gpt4 book ai didi

c# - 有效跟踪最新搜索

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:31 25 4
gpt4 key购买 nike

我有一个 ASP.Net MVC 5 网站。我的一个 Controller 有一个 Search 操作,可以搜索数据库中的商店列表。

我想以某种方式跟踪最新的搜索查询并在另一个页面中将它们显示给用户。我想到的是:

  1. 最直接的方法是在搜索操作中将查询保存在数据库中:我认为为每个查询都访问数据库并不是一个好主意。
  2. 保存搜索操作的日志,然后对其进行解析并将其显示给用户。我觉得有点脏!
  3. 将查询保存在缓存中,每隔几秒或几分钟将它们推送到数据库中。这对我来说似乎是最好的选择。目前我正在使用它来进行页面点击。我每次都会增加页面的命中率,将其保存到缓存并将结果保存到数据库。

有没有更好的方法?您建议采用哪种方法?

最佳答案

您是否考虑过将搜索的关键字存储在客户端? (HTML5 Web Storage localStoragesessionStorage 取决于您的要求)。

然后,例如,您可以构建一个指向 Controller 实际搜索操作方法的链接列表,如果用户单击它,搜索将再次执行,因为结果可能已更改。

如果您真的想将搜索查询存储在数据库中,我建议使用存储过程 ( Does Entity Framework Code First support stored procedures?),它可以同时包含历史插入和实际搜索。

希望对你有帮助


存储过程示例:

CREATE PROCEDURE uspGetShopsByName
@Keyword nvarchar(30)
AS
-- Store the search in the history table
INSERT INTO [dbo].[SearchHistory] ([Keyword]) VALUES (@Keyword);
-- Execute the search
SELECT * FROM [dbo].[Shops] WHERE [ShopName] LIKE @Keyword + '%'
GO

关于c# - 有效跟踪最新搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21150184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com