gpt4 book ai didi

c# - 如何清空 lucene.net 中的 BooleanQuery 对象?

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:47 25 4
gpt4 key购买 nike

int length3 = CheckBoxList4.Items.Count;
int count = 0;
for (int i = 0; i < length3; i++)
{
BooleanQuery finalQuery1 = new BooleanQuery();
finalQuery1 = (BooleanQuery)Session["Luc_Query"];
var query1 = new QueryParser("Industry", analyzer).Parse(CheckBoxList4.Items[i].Text);
finalQuery1.Add(query1, BooleanClause.Occur.MUST);
hits = searcher.Search(finalQuery1);
count = hits.Length();
CheckBoxList4.Items[i].Text = CheckBoxList4.Items[i].Text +" " +count.ToString() ;
}

我试图使 finalQuery1 为空,但它重复了此 query(finalQuery1.Add(query1, BooleanClause.Occur.MUST);) 的附加值。我用来使 BooleanQuery 为空的方法是在下面,但它仍然无法正常工作。

finalQuery1 = (BooleanQuery)null;
finalQuery1=null;

最佳答案

我假设您不想修改存储在 Session["Luc_Query"] 中的查询,只需在每次循环迭代中不修改它即可。

您的代码不起作用,因为您在循环的每次迭代中都修改了相同的查询实例。您需要对原始查询的副本进行更改,而不是更改原始查询。

试试下面的代码:

int length3 = CheckBoxList4.Items.Count;
int count = 0;
for (int i = 0; i < length3; i++)
{
BooleanQuery finalQuery1 = (BooleanQuery)Session["Luc_Query"];
finalQuery1 = (BooleanQuery)finalQuery1.Clone();
var query1 = new QueryParser("Industry", analyzer).Parse(CheckBoxList4.Items[i].Text);
finalQuery1.Add(query1, BooleanClause.Occur.MUST);
hits = searcher.Search(finalQuery1);
count = hits.Length();
CheckBoxList4.Items[i].Text = CheckBoxList4.Items[i].Text + " " + count.ToString() ;
}

关于c# - 如何清空 lucene.net 中的 BooleanQuery 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17527632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com