我需要按相关性和其他字段对搜索结果进行排序.
我需要做类似的事情:
using Lucene.Net.Search;
SortField[] fields = new[] { SortField.SCORE, new SortField("customField") };
Sort sort = new Sort(fields);
IndexSearcher searcher = GetSearcher();
Hits = searcher.Search(query, sort);
Run Code Online (Sandbox Code Playgroud)
除外,SortField.SCORE是一个整数常数,而不是一个SortField.
Lucene.net版本2.3.1.3.
有人遇到过这个吗?
我在Windows Vista x64上使用VMware Workstation 6.5.我想自动执行一些VM管理任务.我知道有一个可以直接使用的COM API(http://www.vmware.com/support/developer/vix-api/).
这个COM API有一个C#包装器吗?
谢谢,
阿尼
我有一个接口IFileSystemStructureEvaluator,它有两个具体的实现:NtfsFileSystemStructureEvaluator和FtpFileSystemStructureEvaluator.
我希望能够请求适当的IFileSystemStructureEvaluator,具体取决于传递给构造函数的Uri是否是FTP uri的文件uri.
我怎样才能在StructureMap中实现这一点?
谢谢
执行动态查询时,RavenDB通常会创建临时索引.
通过它检索文档Id不会触发此行为:
var entity = documentSession.Query<Entity>().Single(x => x.Id == 1);
Run Code Online (Sandbox Code Playgroud)
RavenDB是否有针对此类查询的内置优化?
我有简单的HttpApplication类:
public class MvcApplication : HttpApplication
{
public void Application_Start()
{
// register areas
AreaRegistration.RegisterAllAreas();
// register other stuff...
}
}
Run Code Online (Sandbox Code Playgroud)
我的单元测试初始化HttpApplication,调用ApplicationStart和验证应用程序启动行为.
这种方法很有效,直到我必须整合MVC领域.当AreaRegistration.RegisterAllAreas()单元测试调用时,会抛出以下异常:
System.InvalidOperationException: This method cannot be called during the application's pre-start initialization stage.
是否有一种测试区域初始化逻辑的好方法?
c# unit-testing initialization asp.net-mvc-areas asp.net-mvc-3
我在CruiseControl.NET中设置了两个项目:CI构建和每晚构建.
它们都执行相同的NAnt脚本,但具有不同的参数.
CruiseControl.NET标签(当前由DefaultLabeler生成)作为版本的构建部分嵌入到AssemblyInfo中(例如,MajorVersion.MinorVersion.CCNET_Label.SVN_Revision).
为了更加一致的版本控制,我希望两个项目共享相同的CruiseControl.NET标签值.
我已经调查了作为CruiseControl.NET安装的一部分提供的贴标机,但我找不到能满足我想要的标签.
如何在多个CruiseControl.NET构建之间共享标签值?
如果有更好的方法,我想知道.
我找到了一个方法.请参阅下面的答案.
versioning cruisecontrol.net build-automation build ccnet-config
我正在尝试使用System.Threading.Tasks命名空间中的新线程构造实现可取消的工作线程.到目前为止,我已经提出了这个实现:
public sealed class Scheduler
{
private CancellationTokenSource _cancellationTokenSource;
public System.Threading.Tasks.Task Worker { get; private set; }
public void Start()
{
_cancellationTokenSource = new CancellationTokenSource();
Worker = System.Threading.Tasks.Task.Factory.StartNew(
() => RunTasks(_cancellationTokenSource.Token),
_cancellationTokenSource.Token
);
}
private static void RunTasks(CancellationToken cancellationToken)
{
while (!cancellationToken.IsCancellationRequested)
{
Thread.Sleep(1000); // simulate work
}
}
public void Stop()
{
try
{
_cancellationTokenSource.Cancel();
Worker.Wait(_cancellationTokenSource.Token);
}
catch (OperationCanceledException)
{
// OperationCanceledException is expected when a Task is cancelled.
}
}
}
Run Code Online (Sandbox Code Playgroud)
当Stop()回报我希望Worker.Status是TaskStatus.Canceled. …
我正在编写一个自定义的Lucene.NET索引器来启用MS Word文档的索引.索引器必须能够处理MS Word:2010,2007和2003的最后三个版本.
计划是使用作为VS2010的一部分安装的VSTO互操作程序集来从文档中提取文本内容.
有没有更好的方法来实现Word文档索引?这是否意味着我必须在服务器上安装所有三个版本的Word?或者只是Word 2010?
工具/环境:
注意:有关如何实现此操作的详细信息,请参阅PDF或Word文档中的Sitecore文本搜索
我按照本文中的说明为IIS 7创建了自定义重写提供程序:为URL重写模块开发自定义重写提供程序
为了简化部署,我创建了一个VS2010安装项目并将其配置为将我的程序集部署到GAC.

当我运行安装程序时,它成功完成,并且似乎在GAC中注册了程序集(我已使用gacutil.exe/l进行了验证).
但是,当我转到IIS管理器注册新的重写提供程序时,它不会显示在可用提供程序列表中.
我还尝试使用gacutil.exe/if手动安装程序集.这确实有效,并使组件在IIS管理器中的可用提供程序列表中可见.
我在安装项目中缺少某种配置吗?
给定带有字段的事件存储:
其中包含的事件基于:
public class OrderLineAdded
{
int Id;
short Quantity;
}
Run Code Online (Sandbox Code Playgroud)
...然后添加了更新结构的其他事件:
public class OrderLineAdded
{
int ProductId; // field name has changed
int Quantity; // field datatype has changed
}
Run Code Online (Sandbox Code Playgroud)
检索此历史数据(用于分析等)时,如何将二进制有效负载重建为有意义的数据?
注意:上面的代码不是良好的事件/事件存储实现的示例.我只是想知道应如何处理这种情况.
c# ×5
.net-3.5 ×3
.net ×2
lucene.net ×2
.net-4.0 ×1
api ×1
build ×1
ccnet-config ×1
cqrs ×1
gac ×1
iis-7 ×1
lucene ×1
ms-word ×1
ravendb ×1
search ×1
structuremap ×1
unit-testing ×1
versioning ×1
vix ×1
vmware ×1
vsto ×1
wrapper ×1