小编axe*_*l_c的帖子

在多个应用服务器上同步Lucene.net索引

我们正在为企业Web应用程序设计搜索体系结构.我们将使用Lucene.net.索引不会很大(大约100,000个文档),但搜索服务必须始终保持最新状态并始终保持最新状态.将始终向索引添加新文档和并发搜索.由于我们必须具有搜索系统的高可用性,因此我们有2个应用程序服务器,它们公开WCF服务以执行搜索和索引(服务的副本在每个服务器中运行).然后,服务器使用lucene.net API来访问索引.

问题是,保持索引始终同步的最佳解决方案是什么?我们考虑了几种选择:

  • 使用一台服务器进行索引并让第二台服务器通过SMB访问索引:没有办法,因为我们有单点故障情况;

  • 索引到两个服务器,基本上写入每个索引两次:可能是糟糕的性能,如果例如,可能是desync.服务器1索引正常,服务器2耗尽磁盘空间或其他任何内容;

  • 使用SOLR或KATTA来包装对索引的访问:nope,我们不能在服务器上运行tomcat或类似的东西,我们只有IIS.

  • 将索引存储在数据库中:我发现这可以使用java版本的Lucene(JdbcDirectory模块)来完成,但我找不到任何类似的Lucene.net.即使它意味着小的性能损失,我们也会选择这个选项,因为它可以干净地解决并发和同步问题与mininum开发.

  • 使用Lucene.net DistributedSearch contrib模块:我无法提供有关此文档的单个链接.我甚至不知道通过查看代码的代码是什么,但在我看来它实际上是在多台机器上分割索引,这不是我们想要的.

  • rsync和朋友,在两台服务器之间来回复制索引:这对我们来说感觉很乱,而且容易出错,并且,如果索引变大,可能需要一段时间,在此期间我们将返回腐败或不一致数据到客户端,所以我们必须开发一些我们不想要的临时锁定策略.

我知道这是一个复杂的问题,但我相信很多人以前都会面对它.欢迎任何帮助!

lucene lucene.net

14
推荐指数
1
解决办法
4681
查看次数

如何在类库项目中引用xml文件

我有一个类库项目.在其中一个类中,我需要访问XML文件.如何在类中引用此文件的路径?该文件位于同一项目的其中一个文件夹中.

.net c# visual-studio

12
推荐指数
1
解决办法
1万
查看次数

用于lzo.net的最新版lzo.dll(在内存压缩中)

用于lzo-net(http://lzo-net.sourceforge.net/)我正在寻找新版本的lzo.dll文件.我的是2004年.

最新的文件应该是2.0.6(http://www.oberhumer.com/opensource/lzo/download/)

但我只有视觉工作室和编译不工作.我跑

lzo-2.05\B\win32>vc_dll.bat
Run Code Online (Sandbox Code Playgroud)

但我只收到错误消息.

我在哪里可以下载新的x86版本的lzo.dll?

我将压缩速度与其他工具(SharpZipLip,DotNetZip,ManagedQLZ,QuickLZSharp,MiniLZO,Deflate,SevenZip)进行了比较,但lzo是我应用程序中最快的.

因此,我认为最好使用最新版本.也许有其他的改进和错误修复有帮助.

我得到了以下错误:

D:\lzo-2.05\lzo-2.05\B\win32>vc_dll.bat
// Copyright (C) 1996-2011 Markus F.X.J. Oberhumer
//
//   Windows 32-bit
//   Microsoft Visual C/C++ (DLL)
//
The system cannot find the path specified.

D:\lzo-2.05\lzo-2.05\B\win32>set CC=cl -nologo -MD

D:\lzo-2.05\lzo-2.05\B\win32>set CF=-O2 -GF -W3

D:\lzo-2.05\lzo-2.05\B\win32>set LF=

D:\lzo-2.05\lzo-2.05\B\win32>cl -nologo -MD -O2 -GF -W3   -D__LZO_EXPO
RT1#__declspec(dllexport) -c @b\src.rsp
The command "cl" is either misspelled or could not be found
Run Code Online (Sandbox Code Playgroud)

c# compilation lzo

2
推荐指数
1
解决办法
2674
查看次数

如何在 WebClient 中设置 User-Agent

我使用下面的代码打开对 youtube 视频的流请求,但它总是返回异常“远程服务器返回错误:NotFound”。然后我尝试使用 Fiddler 来检测问题,我看到 WebClient 自动将 User-Agent 字段设置为 NativeHost,而不是我的 User-Agent 如下。

我向 youtube 发送请求的代码:

private static Task<string> HttpGet(string uri)
{
    var task = new TaskCompletionSource<string>();

    var web = new WebClient();
    web.OpenReadCompleted += (sender, args) =>
    {
        if (args.Cancelled)
            task.SetCanceled();
        else if (args.Error != null)
            task.SetException(args.Error);
        else
        {
            //var bytes = args.Result.ReadToEnd();
            byte[] bytes = new byte[] { };
            using (MemoryStream memoryStream = new MemoryStream())
            {
                args.Result.CopyTo(memoryStream);
                bytes = memoryStream.ToArray();

                task.SetResult(Encoding.UTF8.GetString(bytes, 0, bytes.Length));
            }
        }
    };

    web.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (compatible; …
Run Code Online (Sandbox Code Playgroud)

c# user-agent webclient

1
推荐指数
1
解决办法
1万
查看次数

Javascript中的Datepicker

在Javascript中创建datepicker的最佳方式(模式)是什么?

我用Singleton模式创建了一个,但不满意.

javascript design-patterns datepicker

0
推荐指数
1
解决办法
520
查看次数

查找Unix文件系统

如何获取根目录中所有文件和文件夹的列表,包括子文件夹及其文件.

unix filesystems

0
推荐指数
1
解决办法
180
查看次数

ASPX C#如何下载用户需要的文件?

我正在尝试开发一个网页,允许用户下载到那里的选择目录.在我的搜索中找到了这个,我发现你不能使用"FolderBrowserDialog".我也发现在线示例只会搜索websrver directeory路径而不是本地机器.无论如何得到目录路径?我有FTP文件的代码,我只需要替换"FolderBrowserDialog"的代码.

c# asp.net download

0
推荐指数
1
解决办法
1144
查看次数