我正在开发一个店面Web应用程序.当潜在客户在网站上查看产品时,我想自动从数据库中建议一组类似的产品(与要求人员明确输入产品相似性数据/映射相比).
实际上,当您考虑它时,大多数店面数据库已经有很多可用的相似性数据.在我的情况下Products
可能是:
Manufacturer
(又名Brand
),Categories
,和Tags
(aka Keywords
).通过计算产品与所有其他产品之间共享属性的数量,您可以计算"SimilarityScore",以便将其他产品与客户正在查看的产品进行比较.这是我最初的原型实现:
;WITH ProductsRelatedByTags (ProductId, NumberOfRelations)
AS
(
SELECT t2.ProductId, COUNT(t2.TagId)
FROM ProductTagMappings AS t1 INNER JOIN
ProductTagMappings AS t2 ON t1.TagId = t2.TagId AND t2.ProductId != t1.ProductId
WHERE t1.ProductId = '22D6059C-D981-4A97-8F7B-A25A0138B3F4'
GROUP BY t2.ProductId
), ProductsRelatedByCategories (ProductId, NumberOfRelations)
AS
(
SELECT t2.ProductId, COUNT(t2.CategoryId)
FROM ProductCategoryMappings AS t1 INNER JOIN
ProductCategoryMappings AS t2 ON t1.CategoryId = t2.CategoryId AND t2.ProductId != t1.ProductId
WHERE t1.ProductId = …
Run Code Online (Sandbox Code Playgroud) 我想用'|'替换未用双引号括起来的每个逗号 在sed中使用awk模式匹配.
例如,给出以下输入:
A,B,"C,D",E,"F,G",H,"I,J,K"
"Chang, Yao-Jen",33,MIS,"Taiwan, Taipei",M
Run Code Online (Sandbox Code Playgroud)
这是所需的输出:
A|B|"C,D"|E|"F,G"|H|"I,J,K"
"Chang, Yao-Jen"|33|MIS|"Taiwan, Taipei"|M
Run Code Online (Sandbox Code Playgroud)
我希望这完成而不使用硬编码,如:
sed '2s/33,MIS/33|MIS|/' file.
Run Code Online (Sandbox Code Playgroud) 我正在创建一个extjs网格面板,它具有一组用户可配置的列.该Ext.grid.Panel
组件reconfigure(store, columns)
为此提供了一种方便的方法.
此方法按预期工作,无需完全销毁和重新创建网格,即可重新配置网格的存储/列.但是,如果您使用Ext.grid.plugins.RowEditing
插件提供内联行编辑,则在使用新列重新配置网格后,列将不同步.
这特别令人沮丧,因为RowEditing插件已经监视添加/删除/调整列并正确处理这些列.我怀疑这只是当前版本的ExtJs的疏忽.
我想要的是RowEditor在使用新列重新配置网格时更新其编辑器列表和宽度,而不会破坏/重新创建网格/视图.
经过大量的谷歌搜索后,看起来我并不是唯一一个寻找具有内联编辑支持的易于重新配置的列列表的人.
我有一个ASP.NET MVC3应用程序.
如果我的应用程序有大量用户 - 假设为100,000 - 假设,如果所有用户互相交谈并且我使用了SignalR,那么是否会有100,000个长轮询连接?这会导致某种拒绝服务吗?
我应该使用AJAX HTTP吗?或者SignalR是否足够聪明,在一段时间内没有找到任何活动时会释放与资源池的连接?
何时使用signalR进行聊天建议聊天与AJAX?
ajax ×1
asp.net-mvc ×1
awk ×1
c# ×1
extjs ×1
extjs4.1 ×1
indexing ×1
javascript ×1
sed ×1
signalr ×1
sql ×1
sql-server ×1
sql-view ×1