我在SQL Server中使用全文搜索所使用的排名存在一些问题.
假设用户搜索两个单词"foo bar".我们假设用户打算进行OR搜索,因此我们将"foo OR bar"传递给我们的CONTAINSTABLE调用.我们发现的是,包含"foo"10次但不包含"bar"的行将具有更高的等级,然后是具有"foo"和"bar"的行.我们希望将具有两个术语的行优先于仅具有多个术语多次的行.有关如何实现这一目标的任何建议?
我找到了与RANKMETHOD修饰符相关的文档,但这似乎仅适用于SQL Enterprise搜索,而不适用于常规SQL Server 2005安装.我们也可以切换到Lucene.Net,但我希望验证它有更好的排名.我们也可能会进行多次搜索并合并结果,但随着搜索的字数增加,这似乎是不可取的.
我有一些具有冗余的linq查询,我想分解出一段代码.这些是IQueryable的连接表达式,重要的是我不会导致查询比没有重构时更早地进行评估.
这是一个简化的查询:
var result =
from T in db.Transactions
join O in db.Orders on T.OrderID equals O.OrderID
join OD in db.OrderDetails on O.OrderID equals OD.OrderID into OrderDetails
let FirstProductBought = OrderDetails.First().Select(OD => OD.Product.ProductName)
select new
{
TransactionID = T.TransactionID,
OrderID = O.OrderID,
FirstProductBought = FirstProductBought
};
Run Code Online (Sandbox Code Playgroud)
我想要分解的是"给定订单,购买的第一个产品是什么"的逻辑.我在其他查询中使用相同的逻辑.如何将其分解为共享方法?
通常,对于代码重用和IQueryables,我能够做的是使IQueryable进入并生成IQueryable/IOrderedQueryable作为输出的代码.使用这些函数,我可以使用可重用代码构建LINQ表达式,该代码仍然会延迟查询,直到查询完全构造完毕.在这里,由于我只有一个int(orderID),我不知道如何使它工作.
谢谢
为了调试一些代码,我想查看远程机器的Windows事件日志(目标是Windows2003).使用mmc.exe,我可以为远程计算机添加事件日志,但前提是我有足够的权限.对于这台远程计算机,他们不希望授予我远程登录的权限(或管理员权限).是否有特定的权限我可以查看事件日志,而不是其他许多?
可以通过TFS或Visual Studio读取补丁文件吗?我想创建一个shelveset或将补丁应用到TFS中的工作区.
我有一个CreateDrocessWithTokenW调用失败,访问被拒绝.任何想法如何调试这个?
对CreateProcessWithTokenW的调用如下:https://github.com/fschwiet/PShochu/blob/master/PShochu/Pinvoke/NetWrappers/ProcessUtil.cs
现在我正在为当前进程使用访问令牌,最终我将使用来自其他用户的令牌.现在,我正在使用https://github.com/fschwiet/PShochu/blob/master/PShochu/PInvoke/NetWrappers/AccessToken.cs来获取访问令牌.
如果要调试,请下拉源代码并运行build_and_test.ps1.错误堆栈是:
1) Test Error : PShochu.Tests.can_run_remote_interactive_tasks, given a psake script which writes the current process id to output, when that script is invoked interactively, then the script succeeds
System.ComponentModel.Win32Exception : Access is denied
at PShochu.PInvoke.NetWrappers.ProcessUtil.CreateProcessWithToken(IntPtr userPrincipalToken, String applicationName,
String applicationCommand, Boolean dontCreateWindow, Boolean createWithProfile, StreamReader& consoleOutput, StreamReader& errorOutput) in c:\src\PShochu\PShochu\PInvoke\NetWrappers\ProcessUtil.cs:line 52
at PShochu.ProcessHandling.RunNoninteractiveConsoleProcessForStreams2(String command, String commandArguments, String& newLine) in c:\src\PShochu\PShochu\ProcessHandling.cs:line 36
at PShochu.ProcessHandling.RunNoninteractiveConsoleProcess(String command, String commandArguments) in c:\src\PShochu\PShochu\ProcessHandling.cs:line 20
at PShochu.Tests.can_run_remote_interactive_tasks.<>c__DisplayClass16.<>c__DisplayClass18.<Specify>b__2() in …Run Code Online (Sandbox Code Playgroud) 我看到使用JSON.Net,如果$type属性指定了JSON对象的特定类型,我可以解码多态对象.在我看过的所有示例中,$type包括命名空间.是否可以使这项工作包括一个简单的类型名称而不需要汇编?如果可能的话,我很乐意为JsonSerializer指定默认程序集.
我可以使用以下命令反序列化JSON:
public class SingleAssemblyJsonTypeBinder : SerializationBinder
{
private readonly Assembly _assembly;
private Dictionary<string, Type> _typesBySimpleName = new Dictionary<string, Type>(StringComparer.OrdinalIgnoreCase);
private Dictionary<Type,string> _simpleNameByType = new Dictionary<Type, string>();
public SingleAssemblyJsonTypeBinder(Assembly assembly)
{
_assembly = assembly;
_typesBySimpleName = new Dictionary<string, Type>();
foreach (var type in _assembly.GetTypes().Where(t => t.IsPublic))
{
if (_typesBySimpleName.ContainsKey(type.Name))
throw new InvalidOperationException("Cannot user PolymorphicBinder on a namespace where multiple public types have same name.");
_typesBySimpleName[type.Name] = type;
_simpleNameByType[type] = type.Name;
}
}
public override Type BindToType(string …Run Code Online (Sandbox Code Playgroud) 我正在运行以下代码来跟踪在HTML文档中获得焦点的每个控件的tagName:
$(function() {
$("*").bind("focus", function() {
console.log("tabbed " + this.tagName);
});
});
Run Code Online (Sandbox Code Playgroud)
当这个运行时,我可以看到firebug控制台并看到它跟踪标签,如"A"和"INPUT",我期望在我通过文档选项卡时获得焦点.然而,它也跟踪一个"UL"标签.该文档有多个UL标签,只有这一个UL标签似乎得到了关注.
任何想法如何发生这种情况?具有焦点的UL标签没有属性(名称,ID等),因此我不知道它将如何被其他脚本修改.
(在firefox中运行.我正在查看的页面非常大,所以我不包含源代码,但UL标记没有属性,包含一些LI,其中一个LI包含标记).
根据哪些HTML元素可以获得焦点?,也许是因为某些脚本在该UL标签上设置了tabindex.我找不到任何这样的剧本.
请注意,我并不是想弄清楚如何使UL成为可调焦的,而是要弄清楚为什么它是可聚焦的.
我的powershell配置文件有一个自定义的PowerShell提示符,不幸的是导致$ lastexitcode值丢失.例如,给定一个powershell脚本"fail.ps1",内容为"exit 123",当我运行脚本时,$?$ lastexitcode为0时为$ false.如果我在没有使用自定义提示加载我的配置文件的情况下运行powershell,则在运行fail.ps1之后,$ lastexitcode为123.
以前有人见过这个问题吗?有没有办法在生成提示时保留$ lastexitcode?
我在使用Posh-git时遇到了这个问题,https://github.com/dahlbyk/posh-git,一个很好的用于git的PowerShell提示符.
我有一个带有六个Web应用程序项目的visual studio解决方案.我经常想将调试器附加到进程.当我这样做时,visual studio总是想要启动cassini或IIS express,或者做一些事情来运行解决方案中的Web应用程序.有没有办法可以跳过它,所以当附加到一个过程时,visual studio不会尝试在当前的解决方案中启动Web应用程序?
http://docs.angularjs.org/api/ng.$ http的$ http的AngularJS文档说明"$ http服务实际上不会发送请求,直到执行下一个$ digest()."
我只是想知道它为什么不立即发出HTTP请求?这似乎是一个不必要的要求,我想知道我错过了什么.
更新:有人建议这是必要的,因为完成处理程序将需要更新摘要.但是,这些完成事件需要在以后的任何一种情况下进行自己的$ apply/$ digest调用.
.net ×1
angularjs ×1
c# ×1
command-line ×1
event-log ×1
focus ×1
git ×1
html ×1
iqueryable ×1
javascript ×1
json.net ×1
linq ×1
linq-to-sql ×1
patch ×1
pinvoke ×1
powershell ×1
sql-server ×1
svn ×1
tfs ×1
winapi ×1