下面的代码来自Lucene In Action一书(最初是Java).它用于构建"允许"文档列表(从用户权限的角度来看)以过滤搜索结果.问题是termsDocs.Read()方法不接受通过引用传递的'doc'和'freq'数组,因此在设置位数组中的位时它们仍然是空的.
任何人都可以提供帮助,使用Lucene自定义过滤器(尤其是.net)的例子似乎很薄.谢谢.
public class LuceneCustomFilter : Lucene.Net.Search.Filter
{
string[] _luceneIds;
public LuceneCustomFilter(string[] luceneIds)
{
_luceneIds = luceneIds;
}
public override BitArray Bits(Lucene.Net.Index.IndexReader indexReader)
{
BitArray bitarray = new BitArray(indexReader.MaxDoc());
int[] docs = new int[1];
int[] freq = new int[1];
for (int i = 0; i < _luceneIds.Length; i++)
{
if (!string.IsNullOrEmpty(_luceneIds[i]))
{
Lucene.Net.Index.TermDocs termDocs = indexReader.TermDocs(
new Lucene.Net.Index.Term(@"luceneId", _luceneIds[i]));
int count = termDocs.Read(docs, freq);
if (count == 1)
{
bitarray.Set(docs[0], true);
}
}
}
return bitarray;
}
} …
Run Code Online (Sandbox Code Playgroud) 使用NetStream从http流式传输内容,我注意到某些导出的h264的esp,如果玩家遇到空缓冲区,它将停止并缓冲到所请求的长度(如预期的那样).
然而,一旦缓冲区已满,播放就不会恢复,而是向前跳跃,因此 - 在短时间内立即播放缓冲的持续时间,从而再次触发空缓冲区......然后这将一遍又一遍地继续.
据推测,当网络流暂停缓冲时,播放头位置继续,并且播放器在恢复时尝试捕捉到该位置 - 但是考虑到可能需要5秒钟来构建2秒缓冲区 - 它最终会再次使用无用的缓冲区.
(这是假设)
我试图通过侦听空缓冲区netstatus事件,暂停流,同时设置一个循环来检查当前缓冲区长度与请求的缓冲区长度来解决这个问题.一旦缓冲区长度为大于或等于请求的缓冲区..但是当没有足够的视频剩余时,这会导致问题...例如,10秒缓冲区只剩下5秒,循环只是坐在那里等待缓冲区长度只剩下5个人的10秒......
您可能会认为您可以简单地检查哪个更小,剩余时间或请求的缓冲区长度..但闪存提供的时间不准确..
如果添加净流当前时间索引加上缓冲时间,则总数不是影片的整个持续时间(在结束时).它接近但不相同.
这让我回到原来的问题,如果还有另一种方法可以解决这个问题,那么显然flash会知道缓冲区什么时候准备就绪,那么如何在缓冲时获得闪存暂停,并在缓冲区准备就绪后恢复?目前它没有..它暂停,然后一旦缓冲区已满 - 它在大约.1秒内播放整个缓冲内容.
斯蒂芬,提前谢谢.
我正在创建一个FAQ页面,通过单击问题来切换答案.问题是h3
,答案是几个p
元素.像这样:
<h3>The First Question</h3>
<p>Answer Paragraph</p>
<p>Answer Paragraph</p>
<p>Answer Paragraph</p>
<h3>The Second Question</h3>
<p>Answer Paragraph</p>
<p>Answer Paragraph</p>
Run Code Online (Sandbox Code Playgroud)
如何切换p
属于某个问题的所有元素?我的JS切换p
页面上的所有后续元素:
$(document).ready(function(){
$("p").hide();
$("h3").click(function(){
$(this).nextAll("p").toggle();
});
});
Run Code Online (Sandbox Code Playgroud)
我不能使用div
或类.
我正在尝试返回对象的引用,而不是按值传递它.这是由于无法通过引用传递属性.
我怎样才能得到下面的代码来写'新号牌'而不是'旧号牌'.看了一下后,好像我不能.只是想先确定一下.看起来很奇怪你不能.
干杯
史蒂夫
http://hardcode.ro/archive/2008/03/18/c-return-reference-types.aspx
http://geekswithblogs.net/akraus1/archive/2006/02/10/69047.aspx
public partial class Test2 : DefaultPage
{
protected void Page_Load(object sender, EventArgs e)
{
var car = new Car();
var numberPlate = car.GetNumberPlate();
numberPlate = "new number plate";
Response.Write(car.GetNumberPlate());
}
}
}
public class Car
{
private string _numberPlate;
public Car()
{
_numberPlate="old number plate";
}
public string NumberPlate
{
get { return _numberPlate; }
set { _numberPlate = value;}
}
public string GetNumberPlate()
{
return _numberPlate;
}
}
Run Code Online (Sandbox Code Playgroud) 我们本周在我的公司一直在讨论如何编写SQL脚本.
背景:我们的数据库是Oracle 10g(很快升级到11).我们的DBA团队使用SQLPlus将脚本部署到生产环境.
现在,我们最近部署失败,因为它使用了分号和正斜杠(/
).分号在每个语句的末尾,斜杠在语句之间.
alter table foo.bar drop constraint bar1;
/
alter table foo.can drop constraint can1;
/
Run Code Online (Sandbox Code Playgroud)
稍后在脚本中添加了一些触发器,创建了一些视图以及一些存储过程.同时具有;
与/
导致每个语句运行两次导致错误(尤其是在插入,是唯一的,其需要).
在SQL Developer中,这不会发生,在TOAD中这不会发生.如果你运行某些命令,如果没有它们,它们将无法工作/
.
在PL/SQL中,如果你有子程序(DECLARE,BEGIN,END),使用的分号将被视为子程序的一部分,因此你必须使用斜杠.
所以我的问题是:如果您的数据库是Oracle,那么编写SQL脚本的正确方法是什么?既然你知道你的数据库是Oracle应该总是使用/
?
Python是我最了解的语言,奇怪的是我仍然不知道为什么我在Java或PHP中键入"self"而不是"this".
我知道Python比Java早,但我无法弄清楚它是从哪里来的.特别是因为您可以使用任何名称而不是"自我":程序将正常工作.
那么这个约定来自哪里?
我正在使用瘦Oracle JDBC驱动程序版本10.2.0(ojdbc14.jar).我想手动配置其NLS_LANG设置.有办法吗?
目前,它从VM变量user.language(通过设置当前区域设置或从系统环境启动时自动设置)获取此设置.
当用户将应用程序区域设置切换到Oracle JDBC驱动程序不支持的区域设置(例如mk_MK)时,这是一个问题.在这种情况下,下次我获取连接时,我得到以下异常:
ORA-00604: error occurred at recursive SQL level 1 ORA-12705: Cannot access NLS data files or invalid environment specified
我可以在获取连接之前动态更改语言环境,然后来回切换回用户选择的语音,但这看起来不那么优雅且效率低下.
在Microsoft编译器上,可以使用#pragma禁用特定警告,而不禁用其他警告.如果编译器警告"必须完成"的事情,这是一个非常有用的功能.
GCC此时是否有类似功能?这似乎是一个显而易见的功能,它无法想象它还没有这个功能,但网上的旧信息表明这个功能不存在.
在GCC中使用什么?
具体来说,我喜欢使用多字符常量,比如'abc'.这些有效地评估为基数256 - 这是一个非常方便的功能,但它会触发警告.它非常便于在case语句中切换四个字符串.