为什么索引需要这么长时间?任何预处理步骤需要时间吗?因为这似乎通常需要很长时间。
这些是数据库记录还是丰富的文档?
您如何对数据建立索引?您是否经常进行提交或优化?
系统内存、CPU、空间表现如何?
可能需要重新访问 solrconfig.xml 中的一些设置
如果以上所有内容看起来都不错,那么您可以尝试一个选项 -
创建单独的核心并运行并行作业来索引数据。索引完成后,您可以合并索引或使用分布式搜索。
认为一个更好:
if(eform[funcName] !== undefined && eform[funcName].init !== undefined){
//some code
}
如果第一个条件为假,则不会检查第二个条件。
根据您需要对用户清楚的程度,您可以使用控件的微妙颜色突出显示(前色、背景色)来指示错误。如果他们试图忽略警告,则使用消息框。
当 RemoteCertificateValidationCallback、X509Certificate 和 X509Chain 似乎没有给我任何可用的东西时,如何仅使用 CA 的公共证书文件而不使用 Windows 证书存储或 WCF 来验证证书是否已由我的特定 CA 签名?< /p>
以下代码将避开 Windows 证书存储并验证链。它与 JB 的代码略有不同,尤其是在标志的使用方面。下面的代码不需要 AllowUnknownCertificateAuthority
(但它确实使用 X509ReplicationMode.NoCheck
因为我没有 CRL)。
函数的名称并不重要。下面,VerifyServerCertificate
与 SslStream
类中的 RemoteCertificateValidationCallback
是相同的回调。您还可以将其用于 ServicePointManager
中的 ServerCertificateValidationCallback
。
static bool VerifyServerCertificate(object sender, X509Certificate certificate,
X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
try
{
String CA_FILE = "ca-cert.der";
X509Certificate2 ca = new X509Certificate2(CA_FILE);
X509Chain chain2 = new X509Chain();
chain2.ChainPolicy.ExtraStore.Add(ca);
// Check all properties
chain2.ChainPolicy.VerificationFlags = X509VerificationFlags.NoFlag;
// This setup does not have revocation information
chain2.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck;
// Build the chain
chain2.Build(new X509Certificate2(certificate));
// Are there any failures from building the chain?
if (chain2.ChainStatus.Length == 0)
return true;
// If there is a status, verify the status is NoError
bool result = chain2.ChainStatus[0].Status == X509ChainStatusFlags.NoError;
Debug.Assert(result == true);
return result;
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
return false;
}
我没有弄清楚如何默认使用这个链(下面的chain2
),这样就不需要回调了。也就是说,将其安装在 ssl 套接字上,连接将“正常工作”。我还没有弄清楚如何安装它以便将其传递到回调中。也就是说,我必须为回调的每次调用构建链。我认为这些是 .Net 中的架构缺陷,但我可能会遗漏一些明显的东西。
$('img').live('load', function ()
{
alert("image loaded: "+this.src);
});
使用 jquery live 方法来跟踪负载。
升级到 VS 2010 将解决您的问题。从新的上下文菜单中选择“表...”:
会产生以下选择,这些选择比2008 版本:
Jon Skeet的答案更好! (即,如果可以的话,只需将时间戳更改为 ISO 8601 格式。)
但是如果您无法更改格式,您可以执行以下操作:(
#!/usr/bin/perl -w
use strict;
my %h;
while(<DATA>) {
chomp;
$h{$_}++;
}
sub iso_8601 {
$_ = shift;
if (/(\d+):(\d+):(\d+) (\d+):(\d+):(\d+)/) {
return "$3:$2:$1:$4:$5:$6";
}
}
foreach my $key (sort {iso_8601($a) cmp iso_8601($b)} keys %h) {
print "$key -- $h{$key}\n";
}
__DATA__
21:01:2011 16:51:09
21:01:2011 16:49:54
26:01:2011 11:02:55
26:01:2011 11:01:40
05:04:2011 11:51:13
05:04:2011 11:51:13
05:04:2011 11:48:37
05:04:2011 11:48:37
重复的时间戳我假设您有自己的逻辑要处理。通过对它们进行散列,对重复项进行计数,我只是打印它们的计数.. .)
结果:
21:01:2011 16:49:54 -- 1
21:01:2011 16:51:09 -- 1
26:01:2011 11:01:40 -- 1
26:01:2011 11:02:55 -- 1
05:04:2011 11:48:37 -- 2
05:04:2011 11:51:13 -- 2
编辑
好的,如果您关心效率,(sort {iso_8601($a) cmp iso_8601($b)} keys %h)
不是 < em>最好,因为每个哈希元素都会多次调用 iso_8601() 函数。
对于“Schwartzian Transform”的形式,您可以执行
print join("\n",
map { $_->[0].' -- '.$h{$_->[0]} }
sort { $a->[1] cmp $b->[1] }
map {[$_,iso_8601($_)]}
keys %h);
以下 操作:与上面相同的输出。然后,每个哈希键仅调用 iso_8601()
一次,而不是多次...
要剖析它(它从右到左,从下到上):
keys %h # list of all the keys of the hash
map {[$_,iso_8601($_)]} # create anon array with 2 elements:
# original stamp and ISO 8601 stamp
sort { $a->[1] cmp $b->[1] } # list sorted on the ISO 8601 stamp
map { $_->[0].' -- '.$h{$_->[0]} } # a list of strings with original stamp
# and hash count
join("\n", # join the list into a string with a "\n"
编辑 2
我很难理解你想要什么。试试这个:
#!/usr/bin/perl -w
use strict;
my %h;
my $i=0;
while(<DATA>) {
chomp;
$h{$_}++;
}
sub iso_8601 {
$_ = shift;
if (/(\d+):(\d+):(\d+) (\d+):(\d+):(\d+)$/) {
$i++;
return "$3-$2-$1 $4:$5:$6";
}
}
foreach my $key (sort {iso_8601($b) cmp iso_8601($a)} keys %h) {
print iso_8601($key).":\t\t"."$key -- $h{$key}\n";
}
print "\n";
输出:
YYYY-MM-DD HH:MM:SS your record...
2011-09-01 10:48:18: MGH_2631 MGH_2631 90(8) 90(8) 90 100.00 211 Male(Unknown) 200943 01:09:2011 10:48:18 -- 1
2011-09-01 10:48:18: MGH_2101 MGH_2101 80(18) 80(18) 80 100.00 359 Male(Unknown) 200943 01:09:2011 10:48:18 -- 1
2011-08-25 10:20:16: MGH_2101 MGH_2101 80(18) 80(18) 80 100.00 359 Unknown(Unknown) 200944 25:08:2011 10:20:16 -- 1
2011-08-25 10:20:16: MGH_2631 MGH_2631 90(8) 90(8) 90 100.00 211 Unknown(Unknown) 200944 25:08:2011 10:20:16 -- 1
2011-08-25 10:19:05: MGH_2631 MGH_2631 90(8) 90(8) 90 100.00 211 Unknown(Unknown) 200945 25:08:2011 10:19:05 -- 1
2011-08-25 10:19:05: MGH_2101 MGH_2101 80(18) 80(18) 80 100.00 359 Unknown(Unknown) 200945 25:08:2011 10:19:05 -- 1
2011-08-25 10:17:26: MGH_2101 MGH_2101 80(18) 80(18) 80 100.00 359 Male(Unknown) 200946 25:08:2011 10:17:26 -- 1
2011-08-25 10:17:26: MGH_2631 MGH_2631 90(8) 90(8) 90 100.00 211 Male(Unknown) 200946 25:08:2011 10:17:26 -- 1
2011-07-01 16:13:55: WGA_PD7124a WGA_PD7124a 95(2) 95(2) 95 100.00 193 Unknown(Unknown) 192654 01:07:2011 16:13:55 -- 1
2011-07-01 16:11:23: WGA_PD7124a WGA_PD7124a 95(2) 95(2) 95 100.00 193 Unknown(Unknown) 192655 01:07:2011 16:11:23 -- 1
2011-07-01 11:04:26: WGA_PD7124a WGA_PD7124a 95(2) 95(2) 95 100.00 193 Male(Unknown) 192656 01:07:2011 11:04:26 -- 1
2011-05-04 17:35:52: WGA_PD6355b WGA_PD6355b 96(1) 96(1) 96 100.00 388 Unknown(Unknown) 184558 04:05:2011 17:35:52 -- 1
2011-05-04 17:35:52: WGA_PD6355b WGA_PD6355a 96(1) 66(31) 66 95.45 388 Unknown(Unknown) 184558 04:05:2011 17:35:52 -- 1
2011-05-04 17:34:27: WGA_PD6355b WGA_PD6355b 96(1) 96(1) 96 100.00 388 Unknown(Unknown) 184557 04:05:2011 17:34:27 -- 1
2011-05-04 17:34:27: WGA_PD6355b WGA_PD6355a 96(1) 66(31) 66 95.45 388 Unknown(Unknown) 184557 04:05:2011 17:34:27 -- 1
2011-03-23 10:03:23: PD4294c PD4294c 95(2) 95(2) 95 100.00 221 Unknown(Unknown) 179502 23:03:2011 10:03:23 -- 1
2011-03-23 10:02:30: PD4294c PD4294c 95(2) 95(2) 95 100.00 221 Unknown(Unknown) 179470 23:03:2011 10:02:30 -- 1
2011-02-15 09:24:31: 3074 3074 87(10) 87(10) 87 100.00 109 Unknown(Unknown) 174878 15:02:2011 09:24:31 -- 1
2011-02-15 09:21:19: 3074 3074 87(10) 87(10) 87 100.00 109 Unknown(Unknown) 174970 15:02:2011 09:21:19 -- 1
2011-02-15 09:16:32: 3074 3074 87(10) 87(10) 87 100.00 109 Female(Unknown) 174860 15:02:2011 09:16:32 -- 1
2011-02-09 09:54:48: CHP-212 CHP-212 94(3) 94(3) 94 100.00 269 Unknown(Unknown) 173382 09:02:2011 09:54:48 -- 1
2011-02-09 09:54:48: 3163 3163 90(7) 90(7) 90 100.00 176 Unknown(Unknown) 173382 09:02:2011 09:54:48 -- 1
2011-02-09 09:51:02: 3163 3163 90(7) 90(7) 90 100.00 176 Unknown(Unknown) 173284 09:02:2011 09:51:02 -- 1
2011-02-09 09:51:02: CHP-212 CHP-212 94(3) 94(3) 94 100.00 269 Unknown(Unknown) 173284 09:02:2011 09:51:02 -- 1
这是你的想法吗?它解析行尾的时间戳并按降序对这些记录进行排序。这有什么问题吗?
您需要为顶部的变量分配一个值,即使它只是 null
FileStream file = null;
StreamReader file_in = null;
StreamWriter file_out = null;
我几周前就这么做了。
此链接是您的最佳选择:
http://code.google.com/apis/ maps/articles/phpsqlsearch.html
即使您不使用他们的 API,他们的 PHP 和 SQL 查询也能提供很好的帮助。
我认为对此没有什么可做的。虽然 IE 默认情况下使用 ClearType 字体(可以在“工具”>“Internet 选项”>“高级”(选项卡)>“多媒体”(设置选项)>“始终使用 ClearType for HTML”(复选框)中关闭此字体),请将其关闭似乎并没有改变 IE 呈现文本的方式与 FF、Chrome、Opera 等略有不同的事实。即使它确实解决了这个问题,它也是一个客户端选项,所以你仍然会运气不好。
所以,是的,您在基于浏览器的文本渲染方面遇到了一些差异。
不过,您可以尝试 google 的网络字体:
http://www.google.com/webfonts#ChoosePlace: select
它们在跨浏览器上看起来非常相似,尽管我发现 IE8 和 FF5 之间略有不同。
另外,它们看起来非常酷,您无需将它们安装在系统上即可使用它们。
通过运行循环来更好地控制任务,您可以在循环中读取数据、检查是否超时等:
while ([task isRunning])
{
NSData* data = [[pipe fileHandleForReading] availableData];
if ([data length] > 0)
{
//process the data
}
// Run current runloop in default mode; check the timeout; interrupt the task if needed
}
嗯,我只会给你一个提示,
String stuff = "<Schedule> save kittens </Schedule> " +
"<Schedule> and puppies </Schedule>" ;
String [] result = stuff.split("<Schedule>");
for(int i = 0; i < result.length; i++)
{
if(result[i].length() > 0)
Log.d("TODO", " - " + result[i].substring(0, result[i].indexOf("<")));
}
[:] 对于制作列表的深层副本也很有用。
def x(l):
f=l[:]
g=l
l.append(8)
print "l", l
print "g", g
print "f", f
l = range(3)
print l
#[0, 1, 2]
x(l)
#l [0, 1, 2, 8]
#g [0, 1, 2, 8]
#f [0, 1, 2]
print l
#[0, 1, 2, 8]
对 l 的修改反映在 g 中(因为,两者都指向同一个列表,事实上,g 和 l 都只是 python 中的名称),而不是反映在 f 中(因为,它是 l 的副本)
但是,在你的情况下,它没有任何区别。 (不过,我没有资格评论这两种方法的任何内存使用情况。)
编辑
h = range(3)
id(h) #141312204
h[:]=range(3)
id(h) #141312204
h=range(3)
id(h) #141312588
list[:] = range(100) 更新列表
list = range(100) 创建新列表。
@agf:感谢您指出我的错误
我想你可以尝试检查我的 gem,我已经开始它了,因为我对 sambala 也有同样的问题
https:// github.com/revilo/rsmbclient
I think you could try to check my gem, i've started it cause i've same issues with sambala
https://github.com/reivilo/rsmbclient
Ruby读Samba分享